Parts of this article are now out-of-date and needs updating. If you want to publish on the iOS AppStore you must have OSX 10.9 or above, must be running Xcode 6.1.1+ and must be using v1.4.1522+ of GM: S.
In this article we will take you through the necessary steps for getting your game on the Apple App Store. Before continuing make sure that you have met the minimum requirements for the iOS and iOS YYC target platforms, namely:
- Be a registered Apple developer
- A Mac computer with OSX (Mavericks) installed
- Xcode 5.x installed on the Mac
- An iOS device (iPad, iPhone, iPod Touch).
If you have not registered as a developer with Apple, you should do so now as you will be required to provide various developer certificates when uploading your games to the Apple App Store (or the Mac store). You can do this from the Apple Developer page here: developer.apple.com.
You can find a complete guide on how to set up your Mac and iDevice for compiling and testing your games from the following article:
If you have not already followed the steps given in that article you should do so now, before continuing with this one.
Make An App Store Listing
Before compiling your game for the App Store, you must first make a listing for it on iTunes Connect (you will also need to have made a Development Certificate and a Distribution Certificate and created an App ID). To make this listing, you should log into your iTunes Connect developer center, and click on the Manage My Apps link. This will take you to your Apps dashboard, where you can see those apps that you have already uploaded, as well as a button marked Add New App.
If you click the Add New App button, you will begin the process of creating the App Store listing for your game. You will then be asked which platform that you want the game to be distributed to, iOS or Mac OSX, and you should choose iOS.
The next page requires you to input the basic details for your game. you will be required to fill out the following fields:
- Default Language: the default language for your game (more languages can be added later in the upload process)
- App Name: the name of your game as it will be shown on the App Store
- SKU Number: this is the unique identifier for your game, and we recommend that you use the reverse URL format com.<company>.<game>
- Bundle ID: this is a drop down menu where you should select the bundle ID that you created previously
When you have that filled out you can click the Continue button.
Pricing And Availability
The next section requires you to input a date for when the game should be made available, as well as the price tier to set for it and a couple of extra options related to how you wish to distribute it. If you wish to publish immediately after it has been accepted, leave the availability date as it is, but if you plan on having a simultaneous release across multiple platforms, for example, or you wish to have a period of closed ad-hoc testing before it is public, then set this date to sometime in the future.
You can click the Continue button now to go on to the next section.
This section is where you supply the data that will be displayed to the public for your game, starting with the Version Information. here you must provide the following details:
Version Number: the version number for the game being uploaded (formatted as <major>.<minor>.<patch>, eg: 1.0.6)
Copyright: the name of the person or company that hold the copyright for the game
After this you will have to select a Category and a Secondary Category to make finding your game easier, and then a Rating. The rating is based on whether your game falls into any of the categories given (ie: violence, drugs, gambling, etc...) and it should be noted that if you mark "no" to any of the content options, and your game does contain them, your game will fail its certification.
When your game gets uploaded, it will be placed under review by the Apple certification team, and they may need to get in touch with you at a later date. To facilitate things, you can give contact details as well give any notes about specific details relating to your game when testing. If you have created a test account for the game (for logging in, third party SDK's etc...), you can also give details about that too.
You can provide iTunes with your own EULA should you have one. This is an optional step and not necessary as Apple will provide one for you.
This last section is where you need to upload all your App Store graphics, with the following images required:
Large App Icon: must be a 72dpi PNG image, authored at 1024x1024
3.5-Inch Retina Display Screenshots: must be 72 dpi, RGB, flattened, with no transparency and be either high-quality JPEG, TIFF, or PNG format of the following sizes -
640 x 960 pixels for hi-res portrait (full screen) maximum
960 x 640 pixels for hi-res landscape (full screen) maximum
4-Inch Retina Display Screenshots: must be 72 dpi, RGB, flattened, with no transparenc and be either high-quality JPEG, TIFF, or PNG format of the following sizes -
640 x 1136 pixels for portrait (full screen) maximum
1136 x 640 pixels for landscape (full screen) minimum
iPad Screenshots: must be 72 dpi, RGB, flattened, with no transparency and be either high-quality JPEG, TIFF, or PNG format of the following sizes -
1024 x 768 pixels for landscape (full screen) maximum
2048 x 1536 pixels for hi-res landscape (full screen) maximum
768 x 1024 pixels for portrait (full screen) maximum
1536 x 2048 pixels for hi-res portrait (full screen) maximum
When adding screenshots, only one screenshot is required and you can add pp to four additional ones. These screenshots will appear on the store in the order they were uploaded in iTunes Connect, so make sure to upload them in the order that you want the user to see them. You can find further information and guidelines for creating great screenshots and icons from the Apple Developers pages here.
You have one final optional file you can upload - the Routing App Coverage file. Routing app coverage files are
.geojson files that specify the geographic regions supported by your app. In general you can ignore this, but if your game uses geo-location (through an extension) then it will be required.
If you click on the Save button now, your App Store listing will be created and you will be shown a summary, where you can edit most of the details if you need to.
The app summary screen also has a button at the topped marked "Ready To Upload Binary":
When you have your game ready, it's this button that you need to click before you can continue. You can still edit the game information until then and if you leave this summary page without uploading, you can easily reach it again by going to your Apps Dashboard, selecting the game from the those presented and then selecting "View Details" from under the game icon.
Once you click the "Upload Binary" button, you will be asked a number of questions about your game. In general you will mark "No" for the first two (but read the iOS documentation if you are using any third party SDK's or extensions in case they affect the reply here). If your game uses iAds, or any other advertising service, then you will be asked if it uses the "Advertising Identifier" for a number of things. In general, only the first option applies, but again, check the iOS documentation to be sure. Make sure to check the box marked "Limit Ad Tracking setting in iOS" as well.
With that done, you can click the "Save" button which will take you to a screen informing you how to go about using the Application Loader (although GameMaker: Studio does not use it since V1.3) and then a summary of your game where the status should now read "Waiting For Upload".
Creating The Game Package
You can go back to your game in GameMaker: Studio now and continue to work on it and polish it until you are ready to submit it to the App Store. When you are ready, make sure to revise the Global Game Settings and be sure that the Bundle ID matches that which you created for the game on the store, check that the game options for orientation, etc... are correct and that all the icons required have been added.
You do not need to change the provisioning profile used here for the Distribution profile, as that will be added later in Xcode, so make sure that it is still set to the Development profile and Developement Certificate. When you are happy that it all works, make sure that your PC is connected to your Mac and test play your game to make sure that it works on the iDevice correctly.
When you are ready, click on the "Create Executable" icon at the top of the GameMaker: Studio IDE and select a location to save the project to. This is a security measure and the files saved to your PC are simply a copy of those that will be used by Xcode to build your final game. GameMaker: Studio will now build your game in Xcode.
In Xcode you will see that your project is now listed:
There may be a warning shown in Xcode (a yellow (!) will be shown), but these can be ignored, and from here you should now go to the Xcode Organiser, which you can find under the "Window" drop down menu. You need to select the Archives tab.
This will show all the apps that have been built on the left, then when you select one you'll get the details for the app as well as a list of all build that have been made. Now you should select the game build that you wish to upload to the App Store and click the button marked "Distribute". This will open the distribution wizard and you will be asked by Xcode how you wish to distribute. If you only want an .ipa for testing then choose Enterprise, otherwise set it to Store.
Next you will be prompted for your Apple ID and Password, after which you will need to select the Distribution Profile for the game that you are submitting. With that done, you can complete the wizard to upload the final binary. If you chose a Store publish, Xcode will launch the Application Loader in the background and test then send your game to the store. Note that if you chose Enterprise to publish, Xcode will show you where your .ipa has been saved.