by Jon (Updated on 2015-10-22)
Tip: You can push your app to older devices by exporting an IPA and installing the app through iTunes on those other devices. Some have succeeded in testing on iOS devices with older versions directly from their computer.
We recommend installing Xcode directly from the Mac App Store. This guarantees the latest version and simple, in-place updates.
Alternatively, you can grab it from Apple's Developer Site.
Disclaimer: We do not officially support developer previews of Xcode. If you insist on using them, make sure that the folder in which the install resides is called "Xcode" rather than "Xcode-DP-XXX".
After installing Xcode, launch it. Then, do the following.
After they finish downloading, close Xcode.
If this is your very first time developing games on iOS (or if you updated Xcode), you must register your computer with Apple's system.
If you forgot to do this, or this has to be redone, you will find that you are unable to test on your device and get an error message along the lines of "no matching profile" (which makes no sense because you are just testing locally on your device).
Still having trouble? One user had to remove his account from the Accounts page and add it back in.
Now, launch Stencyl and create a brand new game with a blank scene. The game's name and details don't matter -- you'll just be testing that the iOS Simulator works before you try out anything more complex, like your own games.
Now, the app will build for a while, depending on how fast your computer is. If you want to remove the suspense from this process, click Log Viewer in the top toolbar, and you'll be able to follow along. Rest assured that the process only takes long the first time and will be faster every time thereafter.
At the end of the process, the iOS simulator will automatically launch the game.
Now, let's do the same thing except on an iOS Device. Using the same game, do the following.
Again, it will go through a lengthy build process like explained above.
At the end of the process, the app will install to your device, and Stencyl will tell you that it's ready. You must launch it manually by tapping it - it won't auto-launch from Stencyl.
If you are unable to test on your device and see an error along the lines of "No Matching Profile", you need to register your system with Apple.
See Step 3: Register Your System earlier in this article for details.
Apple generally forces you to use the latest version of Xcode and iOS on your Mac. This may be newer than what you have on your device. Unfortunately, this can lead to a mismatch in versions.
Generally speaking, the "major" versions of iOS have to match between your Mac and your device. For example, if your Mac has iOS 9, your device must also have iOS 9 (minor version differences like iOS 9.1 vs. iOS 9.0 are usually OK). It just can't have iOS 8.
Read our comprehensive guide on how to set up certificates, so that you can publish your game to your friend's devices and the App Store.
Stencyl is based around Haxe. In order to build native iOS apps, Haxe is translated to C++ which in turn is compiled to machine code. Although the Stencyl engine is compact, the Haxe code it depends on is large and has to be re-compiled for each new game.
Mercifully, this is only the case the first time you run a game on a given platform (where iOS Simulator and iOS Device are considered separate platforms). Second runs and onwards are much faster. Flash games are not affected by this quirk.
We've devoted an entire article to troubleshooting common issues with iOS, Xcode and Certificates.