This article outlines the process of compiling your GameMaker project into an iOS package which can then be uploaded to the iTunes App Store.
Actually compiling an iOS package is very straightforward as long as you have previously set up GameMaker for testing and can get your project to run on your test device(s). If you haven't already gone through this process, please see the following article and then return to this one:
Once you can test on a device you are almost ready to build your game package, but first you need to take a moment to revise the different Game Options.
iOS Game Options
The iOS Game Options can be opened from the Resource tree Options menu (just double-click on the iOS entry), and it's here that you set up all the details for the final store-ready package that GameMaker creates:
Most of these are self explanatory, but it's worth noting that you can supply a different Team Identifier here in the case where the testing environment for the project is different to the production and want to publish using a different identity. We also recommend that you use the Project Image Generator tool in GameMaker to generate the required splash screens and icons, as iOS requires a massive number of them and it will save you a lot of time:
With the Game Options set up, you'll want to set up the initial store listing through AppStore Connect.
Before you can upload to the App Store you need to sign into AppStore Connect and create a store listing for your game.
NOTE: When testing your game, Xcode should have already generated an App ID for the project and this will be used when setting up the store. If for some reason you do not have an app ID or want to use a different one, then you will first need to go to the Apple Developer pages and create the new app ID.
At the moment, all you really need to do is create the listing and fill out the most basic of details, so click the (+) icon and select New App:
You will then be presented with the following window where you should fill out the basic app details. Make sure to select the appropriate App ID in the Bundle ID section (if it was created through Xcode it will have the XC identifier):
When ready, click the Create button and you will be taken to your app listing. Here you can fill in the details for App Information and Pricing and Availability if you choose, although this can be left and done later when you are ready to publish.
With that done, we can now go back to GameMaker to build the iOS package.
Building The App And Uploading
Back in GameMaker you can click the Create Executable button and your game files will be pushed to Xcode and built. You can build using either the VM or the YYC, as the process for both is the exact same.
When Xcode has finsihed building the app, it will have created an Archive and opened the Xcode Organiser where you can see the new archive along with any that you have previously created:
Here you want to click the Distribute App button to initialise the process of creating and uploading your game to the store.
Follow the on-screen prompts, making sure to select the option "iOS App Store" as the method of distribution and when asked to re-sign the app for the store, you'll normally want to select the "Automatically manage signing" option:
You will then be shown a review of the app package that is to be sent to the App STore, and when ready you can click the "Upload" button. Your app will then be packaged and uploaded to the store for submission and review:
Once the upload has been completed, you need to go back to the AppStore Connect page and open the app listing, going to the section labelled Prepare For Submission:
Here you can fill out the required information for the App Store listing of your game, as well as supply screenshots and other metadata. You will also need to select the build of the app that you have just uploaded as the build you want to submit to the store for review. For that you need to go to the Builds section and then click the text "Select a build before you submit your app":
This will bring up a list of the available builds that can be selected for review, and so you should select one.
Once you have selected a build, the Submit For Review button can be clicked to send your game to Apple for checking. You will then be asked two questions about Export Compliance and Advertising Identifier. In general you will want to respond "No" for both of these, although it will depend on any 3rd party extensions you may have included in your game (see the SDK documentation for the extension if you are unsure).
Once you have submitted the game for review it will be flagged as such on the store listing page:
Review usually only takes a few days and when finalised you will receive an email telling you your game has been reviewed and is ready for publishing. If you selected "Automatically Release This version" when setting up the store listing, then your game will have been published to iOS for all to see. If not then you will need to return to the Apple Developer Console and do a manual release.