Announcement: We've drafted a significantly improved version of this article for Stencyl 3.0. 99% of it still applies to Stencyl 2.2 and below. We recommend checking it out.
In order to publish a game to the App Store, you need to submit your game to our publishing service, where our servers will build your game and send it back to you as an IPA for the App Store.
In order to build your game, you must provide your Distribution Certificate (p12) and the appropriate Provisioning Profile (mobileprovision) depending on whether you are testing (Ad Hoc) or publishing (App Store). This guide explains what these documents are and how to set them up.
Before you begin, we’re assuming that you’ve paid the $99/yr to Apple to sign up for their developer program. If you have not signed up, enroll at the following location.
(Major Gotcha for Windows users: Specify a password for your p12 certificate if you follow Adobe's instructions. Mac OS X, and therefore our server, cannot work with p12's without passwords that were generated on Windows or Linux.)
If you have any kind of access to a Mac, the process is considerably simpler. Only use the Windows/Linux route if you have no access to a Mac.
Step 1: Create Certificates
A certificate is effectively a signature that you use to sign any kind of file to certify that it came from you. Every account comes with at a pair of certificates, one for Development and one for Distribution.
Before you generate a certificate, you have to do two things.
4) Click Browse... and pick the Certificate Signing Request you just created moments ago. Submit.
5) Wait a bit, and the Certificate should be issued.
6) Download both the Development and Distribution certificates. Double-click them to install them.
Step 2: Add Devices
When distributing a game to beta testers off the app store, or when testing for your own purpose, you need to add devices to the Provisioning Portal to allow these devices to run your games.
1) Click on “Devices” in the sidebar.
2) Click “Add Devices”.
3) Enter a name that you’ll be able to recognize in the future.
4) Enter in the Device ID. You can find this ID by connecting your iOS device to your Mac, opening iTunes, selecting the device under DEVICES, and then clicking the “Serial Number” field which will then switch to Identifier (UDID).
5) Submit. Repeat for other devices you want to add.
Step 3: Create an App ID
An App ID is a unique identifier that’s used to allow your game to communicate with Apple’s services or to share data between your games.
You’ll enter this ID into Mobile Game Settings > Identifier.
1) Click on “App IDs” in the sidebar.
2) Click “New App ID”.
3) Enter in a name that you’ll remember.
4) Skip the Bundle Seed ID field.
5) Enter in the actual ID and then submit. We strongly recommend sticking to the convention that Apple suggests of using a reverse-domain name.
For example: com.stencyl.balloons.
Note: Even though Apple will allow this, make sure your App ID doesn't have an underscore ("_") in it. This causes a failure at build-time.
Step 4: Create a Provisioning Profile
A provisioning profile is a document that combines an App ID and a list of Devices together to form a single file that tells a device whether a given application will run on a given device, and for what method of distribution it will be targeted at (App Store or Ad Hoc).
In this case, we only care about the Distribution Profiles.
1) Click on “Provisioning” in the sidebar.
2) Click on the Distribution tab.
3) Click New Profile.
4) Fill in the details as appropriate and submit. Do this twice, once for the App Store and one for Ad Hoc.
5) After you’ve created both profiles, download them to your Mac.
Step 5: Create a p12 file (portable certificate)
A p12 certificate file is a portable format that contains all of the information required to export and import this data from one computer to another. You provide this p12 file to Stencyl when submitting your game to our servers for a build.
1) Open Keychain Access on your Mac (use Spotlight, the search icon at the top right of your screen).
2) Locate your DISTRIBUTION certificate. You can locate it quicker if you click “Certificates” in the Category pane.
3) Right-click it. Select Export.
4) Pick a location you’ll remember. You can provide a password, or you can leave it blank. The password itself isn’t that important, but you will need to provide it to Stencyl to perform the server-side build.
5) That’s it! You now have everything that Stencyl needs.
Step 6: Enter in details to Stencyl
To specify your certificates and provision profiles, you’ll need to tell Stencyl where your p12 and mobileprovision files are located. You do this under Preferences > Mobile.
Step 7: Publish Your Game!
Finally, open up your game and select Publish > Publish iOS App (App Store).
If all goes well, your app will be e-mailed back to you as a .IPA (iPhone Archive) file. This is what you'll send to Apple.
Step 8: Upload to Apple
The final step in this process is to head over to iTunes Connect in order to send your game over to Apple.
At the very end of the process, Apple will ask you to upload your game through the "Application Loader" app on your Mac. Launch this app (click on the search icon at the top-right of your screen, type in "Application Loader"). The rest of the process is self-explanatory.
Note: Starting in Xcode 4.3, Application Loader is now located through Xcode itself via the Xcode > Open Developer Tool menu. (Forum Topic)
What if I'm on Windows?
If you're on Windows, you'll need to find a way to upload your game from a Mac. As of November 2011, there is no way around this step. You can use one of the following methods instead.
Get a Mac. The new Mac Mini can be had for under $600 off Amazon.
Upload it from a friend's Mac.
Use a virtual machine. We don't endorse this method because it breaches the EULA.
Use an online rental service like Macincloud, which lets you rent a Mac on an hourly basis -- more than enough to perform the upload. There's even a free 1-hour trial. http://www.macincloud.com/
Prefer a Video?
Last Updated: 2013-04-09 by Jon
25633 have read this article
Disclaimer: The Stencyl Team does not actively monitor comments on articles. If you're seeking help for your game,
please ask a question on the forums. Thanks!
6 Comments
danieljackson09 Super post of information. The Need to Push iOS games right from the certifications, mac and the step by step information are really good. As a developer i really loved your post. This is so useful to me and clarify many of my minor and (big confusion in fact) as well. Not only to me, to all the Mobile app developers Atlanta will be benefited by reading this. Thanks for the useful information.
For any kind of app development needs, visit: http://innoppl.com/mobile-applicati on-development 01 month, 4 days ago
danieljackson09 Super post of information. The Need to Push iOS games right from the certifications, mac and the step by step information are really good. As a developer i really loved your post. This is so useful to me and clarify many of my minor and (big confusion in fact) as well. Not only to me, to all the <a href="http://innoppl.com/mobil e-application-development"> Mobile app developers Atlanta</a> will be benefited by reading this. Thanks for the useful information. 01 month, 4 days ago
zackyzoom I"m doing everything but when I try to publish the app, it keeps telling me "Your app's identifier doesn't match the one in your provisioning profile". What does that mean? 02 months, 3 weeks ago
vvitek When publishing to iOs on my Mac, I get this error, and it is compiling forever...
[LOG] Check dependencies
[LOG] Code Sign error: No unexpired provisioning profiles found that contain any of the keychain's signing certificates
[LOG] warning: iOS deployment targets lower than 4.3 are not supported (current IPHONEOS_DEPLOYMENT_TARGET = "4.1", ARCHS = "armv7").
[LOG]
[LOG]
[LOG] ** BUILD FAILED **
[LOG]
[LOG]
[LOG] The following build commands failed:
[LOG] Check dependencies
[LOG] (1 failure)
Any sugestions what I set wrong? Is it on the xcode side?
Thank you! 15 months, 1 week ago
magicpegasus Jon, I think I missed this other MAJOR Gotcha! I'm starting the process over... 05 months, 3 weeks ago
Jon I've updated the article to be very clear about the required certificates. To reiterate, you need to generate your P12 from your DISTRIBUTION certificate, NOT your developer certificate.
If you don't do this, you get some error along the lines of this when StencylBuilder e-mails you back and you check the output logs.
Code Sign error: The identity 'iPhone Developer: Austin Langston (xxxxxxxxxx)' doesn't match any identity in any profile 11 year, 3 months ago