Submitting an app or a mobile game to the App Store is not as straightforward as the developers wish it were. There’s an array of hoops and hurdles you have to navigate, and you’ll need a healthy dose of patience to go through the process successfully. This article covers all the aspects of the game app submission process and how to navigate it in a way that increases the chances that Apple reviewers will approve it.
Apple is particularly concerned with how apps handle user data and whether apps adhere to the Apple Developer Program License Agreement (PDF). This license agreement outlines the terms of data collection, storage, usage, and sharing, including data collection from kids. In addition, your game app should only contain proprietary or licensed content. The app can be withdrawn from the store if Apple finds out that it is using someone else's work without the necessary licenses. Apple places a premium on app quality and wants every app to include detailed app information that users can find on its product page in App Store. Taking care of all these technical and legal prerequisites is the first step towards successfully submitting an app to the App Store.
To create an Apple ID, go to appleid.apple.com and click on Create Your Apple ID on the top right corner of the page. Fill out the registration form. Make sure to enter correct information. At some point, Apple will require confirmation of the email address by entering a six-digit code sent to the provided email, as well as verifying the phone number. Once you're done with that, you can sign in to your newly created Apple account.
Go to developer.apple.com, and from the top page menu, click on Account. Read through the Apple Developer Agreement and agree to be bound by it by checking the box below the agreement. Publishing a game in the App Store will cost $99 a year. Apply by clicking the link to join the program at the bottom of the page, and it’ll open the developer program page with a blue "Enroll" button at the top right corner.
The next page will prompt to register, so click on the "Start" button at the bottom of the page and begin your enrollment. After filling out the following form, you'll have to choose whether to sign-up as an individual or a company. Apple allows transferring a published app to another account. This means that if you need to register a business account but do not have a business registration, you can enroll in the developer program as an individual and later transfer the apps to that new business account. The guidelines below focus on creating apps as an individual. Therefore, continue after choosing Individual/sole proprietor from the drop-down menu.
Accepting a legal agreement will take you to the payment page for developer program enrollment, which, as we remember, cost $99 a year. Fill out the fields in the Complete your purchase page and click Purchase. This process might take some time. Once your payment has been processed, Apple will send you a purchase acknowledgment, a membership confirmation email, and an email welcoming you to App Store Connect.
At this stage, you will need to create three things:
To do this, log in to the developer account and click on Certificates, IDs, & Profiles at the top left side of the page. Click on Create a certificate on the page that opens, choose Apple Distribution, and click Continue. The page that opens will require you to create a new certificate by uploading a certificate signing request. This is where most developers start to struggle. To create a certificate signing request, you’ll need to:
Keychain Access is a macOS program that stores and manages your account information and passwords, reducing the number of passwords you need to remember.
Here, you’ll need to fill out the certificate information. Use the same email you used to create your Apple Developer account and create a common name. Leave the CA Email Address field blank because you’ll upload the request manually. Check Saved to disk, click Continue and choose to save the request to Desktop or another easily accessible location on your computer. On the Create a new certificate page, click on Choose File, upload the certificate you just saved on your computer, and press Continue. On the next page, click Download to download the certificate to your computer so that you can use it to build your app in Xcode.
Tip: It’s a good idea to keep all these distribution-related files in a specific folder to make the process easier to follow and avoid the apparent confusion that this process presents. So, save this new certificate to the same folder that you saved the certificate request file.
Now, if you click on All Certificates in the Certificates, Identifiers, & Profiles page, it’ll take you to the certificates page, where you can see the certificate you just created. The next step is creating an ID for the app. Click on Identifiers at the left of the page and click the plus (+) button next to Identifiers. Select App ID on the page that opens and click Continue. On the next page, select App and click Continue. A page opens where you can register your app ID. Start by specifying the bundle ID that will be used to identify your app. The general format of a bundle ID uses a reverse domain-name style, e.g., instead of xyz.com, it would be com.xyz. The bundle ID is only used for internal purposes and is not available to the end-user, so you need not use a very memorable word. That said, it’s not a good idea to use very random names. So you would use com.xyz (replace “xyz” with your domain name) and then add an extra word or phrase to describe your game. If you use a phrase, you’ll need to use a hyphen between the words because the bundle ID cannot contain spaces.
Next, fill out the description field. You can use a phrase or short sentence that would describe your game. Next, you’ll need to specify your app’s capabilities. Capabilities are services provided by the operating system that you’d want your app to have access to. Explore the capabilities, choose the ones your app needs, and click Continue. If you’ve done everything correctly, you should have a clickable blue Register button appear at the top right corner of the page. If something went wrong, e.g., the bundle ID is invalid or unavailable, you’ll need to fix the issue before you can proceed.
Clicking on the Register button will take you back to the Identifiers page, where you can see the identifier you’ve just created. So far, you’ve created a distribution certificate and an app identifier. Next, you need to create a provisioning profile. The provisioning profile will link the certificate to the identifier and allow you to build and upload your app in Xcode. To create a provisioning profile, click on Profiles from the Certificates, Identifiers, & Profiles page and click the blue Generate a profile button on the next page. You need an app store distribution profile here, so select App Store and click Continue. On the next page, select the App ID that you made earlier and click Continue.
Next, specify the signing certificate that will be used in the provisioning profile by selecting it and clicking Continue. On the next page, create a provisioning profile name. You can use the same name that you used as the app ID. Click the blue Generate button on the top right corner of the screen and download the profile on the next page. Save the profile to your computer, preferably the same folder that contains your certificate signing request and the app certificate. If you go back to the profiles page, you should see your newly created profile.
App listings are created in a separate system called App Store Connect. One way to navigate there is to go back to the developer account main page and click on App Store Connect on the left below Certificates, IDs & Profiles. Click the blue App Store Connect button that appears to go to the App Store Connect dashboard. Click on My Apps to see the apps you’ve created. If you’re going through the app submission process for the first time, this page will be blank.
Go ahead and click on the plus (+) button next to Apps and choose New App. Fill the details in the dialog box that appears, including:
Remember that the name of the game that you’ll use here will be the name that users will see in the App Store. Therefore, don’t use a random name. For Bundle ID, use the bundle ID that you created earlier. SKU is supposed to help you keep track of your app inventory. Create one that would uniquely identify this game for you. User Access allows you to create limited permissions for various people in big organizations. For individual game publishers, use Full Access. Finally, click Create.
Open your game project in Unity, go to File > Build Settings, and click on iOS to choose iOS as the build target. Click on Player Settings and fill out Company Name, Product Name, and Version. You will also set the app icon, the game icon that users will see on their phones when they install the app. For the App Store, the icon must be 1024 by 1024 pixels. Next, click on Other Settings and scroll down to the identification section. Ideally, the bundle identifier should match the bundle ID you created in App Store Connect. Close the Player Settings window and click on Build. Unity will ask you to specify the location for the build. You can create a folder for your iOS build and then click Choose. Unity will begin building your game. Once done, it’ll open the folder with a generated Xcode project that you’ll need to build your game in Xcode.
Open the project and go to project settings. In the General Settings tab, you would need to increase the build number every time you create a new app. Failure to do so will result in your app being rejected. Next, click on the Signing & Capabilities tab. Your game status should indicate an error saying your project requires a development team. You’ll need to add your Apple developer account to Xcode to fix this.
Click Add Account next to Team and sign in with the Apple ID you used to create your Apple Developer account. Next, you’ll need to install the distribution certificate that you created earlier. Open the folder where you saved it and double-click on it to add it to the keychain access app. The Team section will now have a drop-down list with your newly added developer account. If you choose it from the drop-down list, you'll get another error. This error happens because Xcode cannot find a provisioning profile for your app.
But remember that you've already downloaded the provisioning profile to your computer. To feed the provisioning profile to Xcode, turn off automatic signing by unchecking it at the top of the Signing & Capabilities tab. This will allow you to import the profile you downloaded onto your computer.
If the bundle ID of your build does not match the bundle ID of your provisioning profile, you'll get more errors. To fix them, copy the bundle ID of the provisioning profile and paste it into the bundle identifier field. Go back to the General tab. You will see that the bundle identifier there has also changed. Go back to the Signing & Capabilities tab. There should be no more errors, and you can finally build your game. To do that, click on Product from the top bar menu and choose Archive. Wait for the archiving process to finish. Once it’s done, Xcode will ask you to enter the password you use to log in to your computer (the one you enter when installing new apps to your Mac.)
Finally, when the build is complete, Xcode will open the Organizer window, where you can upload your game to App Store Connect. To do this, click Distribute App. With App Store Connect selected, click Next. You will get two options:
Select Upload and click Next. You should get two options turned on by default:
You can opt out or leave them selected. Click Next, specify a provisioning profile for your game and click Next. Enter your Mac password and click Allow. Review it, and click Upload.
To configure your game’s metadata and complete your app submission process, go back to App Store Connect. To see the build you’ve just uploaded, click on the TestFlight tab. You should see your build with a warning that it is missing compliance. To fix this, click Manage. A dialog box will appear where you need to report whether your game is using any encryption.
Off the top of your head, you might say no, but if you used Unity to build your game, you could not answer with certainty. There might be some sort of data transfer that might use encryption. For this reason, it might be safer to answer yes. The alternative would be to conduct detailed research and find out for sure. Once you choose Yes and click Next, you will get a follow-up question whether your app qualifies “for any of the exemptions provided in Category 5, Part 2 of the U.S. Export Administration Regulations.” In general, if encryption is not a feature in your app but simply a security mechanism, you can answer “Yes.”
It might be wise to do some research regarding your specific app. It’s your responsibility to ensure that you provide accurate information. At this point, your game is ready for internal testing via TestFlight. This means that before you submit your app for review, you can have it tested by people you know and make changes based on their feedback. So, click the blue Start Internal Testing button.
Assuming the game app is well tested and optimized, go back to the App Store tab, where you can upload screenshots for your game. Apple requires you to upload screenshots taken using a 6.5 and 5.5 inches iPhone. You need not have the actual devices to take the screenshots. You can do this in Unity using the ScreenCapture class feature. Just make sure you’ve set the correct screen resolutions when taking the screenshots.
Once you’ve uploaded the screenshots, move to the next section, where you can add promotional text, description, keywords, support URL, and marketing URL. For the support URL, you need to provide a link to a webpage that includes information about your game. A simple way of navigating this challenge is to check existing app listings on the App Store and use their app support pages as a reference and inspiration to create your own.
Next, you need to select a build that you want to publish. Click Select a build before you submit your app, choose the build you uploaded, and click Done. In the App Review Information section, you need to provide the contact information of the person that the Apple Review team should contact the need arises. If your game requires a user to log in, ensure you provide the login credentials so that the reviewer can run your game. Lastly, you can choose whether you want to publish your game manually or automatically. Save all changes.
On the left side of the page, click on App Information and set up content rights and age rating. For content rights, you need to confirm that your app doesn’t illegally show content owned by someone else, e.g., play movies without the necessary licenses. Choose the second option and click Done.
To determine the age rating for your game, you’ll need to complete a questionnaire. Click on Set Age Rating Across All Platforms and select the frequency level for each content description that best describes your game. Once you’re done with your selection, click Next and answer two other questions on unrestricted web access and gambling. Click Next. You should now see the age rating result. Click Done.
Next, go to Pricing and Availability on the right side of the page and fill in any information applicable to your app.
Next, complete a data collection survey. To do this, click on the Get Started button. Just like with encryption, even if you don't collect user data, Unity might be doing that. For instance, if your game will use Unity ads, you can be sure that it’ll track and collect user data. So, it’s probably safer to answer “yes” to the data question that appears and click Next. If you answer “yes,” you have to specify the kind of data you collect. In the case of Unity ads, you can simply google it up. Check the ones that apply to your game and click Save. You will be required to provide additional details for each of the data types you selected. Ensure all the information is correct before going back to the submissions page.
Once you’re confident about the information you have provided, click on Prepare for Submission at the top left corner of the page. Click the blue Submit for Review button on the top right side of the page and wait for Apple to review your game.
Apple says it processes 50% of review submissions within 24 hours and 90% within 48 hours. If there are issues with your app, you will receive an email notifying you of all the issues you need to fix. That might involve rebuilding and re-uploading your app to App Store Connect and submitting it again for review. Once your app is approved, the Submit for Review button will change to Release This Version. Click this button to publish the game. A dialog box will appear asking you if you’re sure you want to make the app available on the App Store. Answer yes by clicking on Release This Version. Now your game is live. That said, it might take up to 24 hours for your game to become available on the App Store. Once it becomes available on the App Store, you will receive an email from Apple with your app’s App Store ID.