iOS publishing: The missing manual
Hey guys, I’m trying to be helpful here, and writing out the steps that are either missing or not clear in GS' iOS cookbook. PLEASE correct me, or add your own experiences below. (January 2023)
So my big questions are, when coming back to this stuff after a long time,
To publish a second (or third) app, do I need all the of the steps in the Cookbook ?
To update an app, what parts of the Cookbook are relevant?
To move to a new computer, what do I need to renew/move?
Where is the Cookbook out of date (or in one case misleading)?
My first step was to publish a new app, so as to be able to follow the Cookbook as closely as possible. Then I went back and updated some of my existing apps. When it works (finally) it’s pretty slick. But getting to the first successful delivery to Apple took 12 hours straight experimentation, and I had already tried for several days in September. Here’s what I missed:
GS Mac Cookbook: Apple Publishing
- Developer, AppStore and Certificates
I am already an apple registered developer. I downloaded the latest version of Xcode fresh to a new computer.
‘Member centre’ no longer looks like the screenshot of course, but I found the right page.
What type of certificate do I need?
I’m just interested in Distribution and uploading to the App Store, (since the GS demo tools are so slick that I’ve never found a difference between build and Viewer performance).
I only need one Distribution certificate, to identify myself as a legitimate developer/distributer. I can then sign all my apps with the same certificate. (Then the App Store might also list “more apps by this developer”?)
Having said that, I have a new computer, and tried to migrate / re-download my old Certificate. When nothing worked, I created a CSR from my new computer and created a new Certificate. I chose iOS Distribution (I don’t know if ‘All’ would also have worked)
A major headache was that the intermediate signing certificate link IS wrong. (Never mind the: “if you need to reinstall.. “ etc, you DO need to install the right one ) My distribution certificate requires AppleWWDRCAG3.cer - notice the G3
How to find this out? Open Keychain Access, click System on the left, you should see your certificate there. ‘Left-click’ it and choose Get info. Organisational Unit is G3, this is why I need a G3 certificate.
From here: https://www.apple.com/certificateauthority/
Choose: Worldwide Developer Relations - G3
2. Creating an App Identifier
Obviously - nothing like the screenshots
Prefix? Suffix? Never mind
Massive list of ‘capabilities’ - lets hope we don’t need any of them
This step is one per App. Publishing a second or third app? You need one identifier for each of them, but not for an update.
3. Provisioning profiles
I have previously fallen over at this point because they only last one year. Mine were always listed expired and I thought I had to create new ones. I didn’t realise you can click ‘Edit’ and when you save.. !magic! the certificate is good again for the next year. You can amend, amongst other things, the Certificate used to sign the app - vital because I made a new certificate in the previous step.
The provisioning profile should have no spaces in the name.
Incorrect recommendation in step 7. This has floored me many times.
(Why did I never write ‘Note-to-self’ before now…?)
4. Publish Game to iOS
Loading screens and icons can’t be uploaded in Safari. Try Chrome instead.
Don’t use 0.0.1 for a build number, it has to start with at least ‘1.’
So RC build? Or Build App? (I used RC build and it worked)
Signing the app - here’s where we find out if stuff in the first three steps was wrong. After lot of experimentation:
Certificate not trusted etc, this was really about wrong intermediates.
No dev ID associated - was fixed by removing spaces in the name of the profile.
5. Preparing an App for submission
Cookbook info seems clear.
You can only have one version number in ‘Prepare for submission’.
It must match the version number you put in on the publishing page.
But you can’t upload two packages with the same build number, the build number has to change with every upload.
6. Submitting an app to the App Store
I downloaded Transporter App and followed these steps, directly from the forums:
Create a folder; rename it ‘Payload’; drag your app file in there; compress/zip it; change the extension of the compressed file to .ipa; when asked if you’re sure you want to change the extension, click yes.
Make sure you use capital P for Payload.
The ipa file is the one to submit to the store, not the app file.
I got one error:
App icon must not have alpha channel - fix this in the publishing step.
It takes a while to process. So when you can’t see it immediately in App Store Connect, go have a cup of coffee and wait for an email saying your build has been processed.
Extra Topic. Reject and re-submit:
If Apple rejects your app, it’s not immediately obvious what to do next. There's no plus sign for a new version.
You can click on App review (even if you’ve already read the reasons in an email) and then it may be possible to edit your submission and resubmit. Or, on the main page of the app, increment the version number and try again. You will need to change the version number on the GS publishing webpage to match. Increase the Build number at the same time.
So… to answer the questions at the top, to publish a new app under the same developer name, you need a new app Identifier, and a new provisioning profile, but not a new Developer Certificate (though making a new one is a common troubleshooting step. If you do this you need to edit the provisioning profiles to reference the correct certificate.)
To update an app, you don’t need anything new, on the signing side except to check the provisioning profile is not expired (in which case edit and save, then download and double-click it again). If you’re installing or updating Xcode, you should check the intermediate certificates as explained above. In Appstore Connect, you need a new version number, (and maybe some extra screenshots).
I hope this is useful - thank you to Gamesalad for keeping a great product going in the face of Apple’s constant changes and unnecessary opacity :-) Throw in your comments, experienced publishers! I only do this once every two or three years, and it's meant to be a guide to the pitfalls. But this also means I may have missed or misunderstood stuff and am very happy to be corrected.