This is my personal experience converting a game app using Unity 3D to Apple Xcode. I am using Downed 2D Game for this experiment. You can try this game online, please click the Game section to see the list of games.
Step1. In https://developer.apple.com. Click the Certificates, Identifiers & Profile. In iOS Apps click Identifier. Click App ID, click (+), enter the following:
App ID Description Name: ex. KillBots MultiPlayer
App ID Suffix, Explicit App ID, Bundle ID ex. com.que.killbots.mu
App Services, keep the default e.g. Checked Game Center and In-App Purchase, click Continue.
Click Submit to complete.
Step1b. And in Provisioning Profiles.
Click Distribution, then click (+) to add.
In Distribution, select App Store, click Continue.
In Select App ID, select the one you created in Step1 (ex. KillBots MultiPlayer for com.que.killbots.mu), and then click on Continue and follow the remaining steps. Name this profile and generate, In Profile Name for example type “KillBots MultiPlayer”.
Your provisioning profile is ready. Download and install, click Download.
Step2. Application Preparation. Go to iTunes Connect (https://itunesconnect.apple.com), click Add New App. In App Name enter game title ex. KillBots MultiPlayer, SKU Number ex. com.que.killbots.mu (NOTE. Should be the same in Player Settings – Bundle Identifier). In Bundle ID, select the Provisioning profile that you created in Step1. e.g. com.que.killbots.mu. ClickContinue.
Availability Date: normally today’s date.
Price Tier: Free or Tier 1 or Tier 2, your game app.
Click on Continue.
In Version Information.
Version Number: 1.0, this is the actual version number from your development package.
Copyright: QUE.COM Game Studio, this is the name of the company.
Category: Select the appropriate category for your apps. Example, Primary Category is Game, SubCategory is Arcade/Adventure
Rating: You need to select the appropriate rating of your game app. NOTE: Highly recommend to select the correct rating to avoid delay.
Uploads all the graphic of your Game App.
Screenshot Properties (up to 5 screenshots)
3.25 Inch – 960 x 640 pixels for hi-res landscape (full screen) maximum
4 Inch – 1136 x 640 pixels for landscape (full screen) minimum
4.7 Inch – 1334 x 750 pixels for hi-res landscape
5.5-inch – 2208 x 1242 pixels for hi-res landscape
iPad – 1536 x 2048 pixels for hi-res portrait (full screen) maximum
Icon – 1024×1024 png or jpg
Click Save. The Status will change to Prepare for Upload. Now follow Step 3 to upload your Game app.
Click the View Details. Click Ready to Upload Binary.
Select No for Export Compliance, Content Rights, and Advertising Identifier, then click Save.
The Status will change to Waiting For Upload.
Watch the Youtube video link below for step by step instruction. Next is to build settings.
Step3. In Xcode, open the project code, click on Product, Clean to check any issue with your game app. Wait for the successful message. If you have error, you need to resolve it first.
Continue following the Step1b above for provisioning profile.
Click General, then check your Bundle Identifier, Version, Build, and Team (this is where I select my account). Note. Check for errors before you proceed.
Click Capabilities, then check if you are using Game Center and Game Kit. In most of my game app, I don’t use them simply because I rather sell it for $1.99 instead of showing ads for a free game so you can enjoy the game, not be bother by random ads.
Click Info, I don’t have to touch this but you might want to check it for your self.
Click Build Settings, in Code Signing change it from iOS Developer to iOS Distribution. I skip the Build Phases and Build Rules at this time.
Click Product, then Clean to see if the changes still “Clean Succeeded”.
Click Product, then Run to test it using your iPhone/iPad. NOTE: Please connect your iPhone/iPad to your iMac to download/play the game app.
Click on Product, Build For Running, wait for the program to complete the build. If you see any yellow notice, this will not stop your game app. It is for you to check it.
Then click on Product, Archive … wait to see Build Succeed. It will automatically open the Organizer – Archives for you, this contain the Game App you created in Step1.
Click on Distribute … select Submit to the iOS App Store. Click on Next, it will prompt you to enter your iTunes Connect developer account. Click Next to continue.
Click Validate wait for the “Validation Successful” message. The Provisioning Profile: Created in Step1 will be selected. Click Submit to generate the package.
If everything is ok. You will see a message “Uploading Archive to App Store ….” “Validation Successful” message.
Click Export, Save for iOS App Store Deployment. Sign and package for distribution in the iOS App Store. Click Next, select your “name” profile, click Choose, then Export. Save it “com.que.filename” to any folder you like.
Upload the binary file, normally the itunesconnect.apple.com will recognize your last save export.
Something like this:
No issues were found in “KillBots MultiPlayer:.
“KillBots MultiPlayer” has passed validation and has been submitted to the App Store for further review.
You can close the Xcode Organizer – Archives.
And we have to wait, normally 3-7 working business days to get an update from iTunes review team.
I’ve got this message:
The submission succeeded. Some warnings were found during validations:
WARNING ITMS-9000: “Version Mismatch. Neither CFBundleVersion [1.0] nor CFBunderShortVersionString[‘1.0’] in the info.plist match the version of the app set in iTunes Connect [‘1.0’].”
Answer. I think I know how to fix it. First, I did not run the VALIDATION before I run to DISTRIBUTE in Step3. When I created the game app in Unity3D, the version is 1.0 while in Xcode it is v2.0 duh! This will not pass the Apple Review team.
To correct this issue, open the xcode project file, check the General, Capabilities, Info, and other settings.
Click Product, Clean.
Click Product, Build For Running.
Click Product Archive.
UPDATE: No need to Build and Archive. Login to iTunes Connect, click edit Version Information, correct the Version Number from v1.0 to 1.0
Because of this correction I have to re-submit the game app. In iTune Connect, I have to reject my Binary, and re-upload it again to change it back to status “Waiting For Upload“. Then, in Organizer Archives, click on Distribution to try it again.
If you don’t reject it, the Organizer Archives will prompt you of “No application records were found.“.
After all these changes/actions. I finally received “Submission Succeeded”
No issues where found in “Downed v1.0”. “Downed v1.0” has passed validation and has been submitted to the App Store for further review.
Click Finish to complete.
Go to iTunes Connect, click on the Downed game app to see the updated status. Now it changed from “Waiting For Upload” to “Waiting for Review“.
Finally, I completed the submission of Downed 2D Game (1.0) to the App Store. Now is waiting time, it will take between 3-7 business days to receive a decision.
UPDATED: August 14, Downed v1.0 is approved and ready for sale. I have update the contact, bank and tax information. Now status changed to Pending Contract.
UPDATED: August 14. Pending Contract approved the same day.
In Connect to iOS Dev Center, click on Download Identities … Choose you Developer Account. This will download your Identities.
“An administrator must request identities before they can be download”. ???
Action to correct the request identities:
- Go to “iOS Provisioning Portal” -> “Certificates” (Left sidebar) -> “Distribution” tab
- Check field “Provisioning Profiles”. If empty, next (4)
- Go to “Provisioning” (Left sidebar) -> “Distribution” tab. Press “New Profile” and complete it. Go back to (3) check the field again.
- Download and “run” (double click) the new provisioning profile.
Repeat Step3 to Distribute the game app to Apple Store.
I forgot on how to create a Provisioning Profile, so I am reviewing my notes. More practice to make myself familiar with this process.
Create a Provisioning Profile game app for distribution.
- Go to developer.apple.com, and login using your developer account.
- Click on Member Center, click Certificates, Identifiers and Profiles to check your existing profiles.
- Click the Provisioning Profiles
- Click the (+) sign to create
- In Distribution, click App Store, click Continue. Here, you can use an explicit App ID or WildCard App ID.
References/Tools I used for my Game App.