I can’t hesitate the importance of testing your games because I have experienced the painful feeling on getting rejected by Apple after waiting few days until reviewers get to check my game.
You want your players to have a great experience and even if you are certain to have tested everything in Unity it doesn’t necessarily mean that every feature will work in the iOS platform. There are way too many failure points, first you are releasing to a device where the architecture is completely different, you may also have game center integration, or push notifications, or even a WatchOS companion app, which are all things that you will need to test on the device.
There are two ways you could test your games in iOS and trust me I have researched a lot and found these to be the best ways:
Unity3d Build/Run to iOS Device(s) attached to XCode
This sounds simple but there’re many different devices supported by iOS, many resolutions, iOS versions, etc. Here you want to make sure to change your Target SDK under File -> Build Settings -> iOS -> Player Settings -> to -> Device SDK which then will generate a Xcode project that can be used to build your game to Apple Developer registered iOS devices.
Few things to consider:
- Run your game in multiple iOS devices and running various iOS versions.
- If you support portrait or landscape make sure it is set to the desired option.
- Make sure game center is working as expected. You may want to check that leaderboards are opening up, scores are getting updated, or if achievements are set then you need to try to earn them to test it as well.
- Make sure push notifications are also working.
- Is your WatchOS companion installing correctly, do you have the option to install it?
- Check and make sure GUI is resizing appropriately depending on the device you’re using. Does it look as expected? Are UI components sized correctly?
- Do you have MAC/PC functionality that shouldn’t be included in the iOS build?
Test as much as possible on your device and using a variety of devices can drastically improve quality.
Unity3d Build to the App Store and use TestFlight for distribution
This step is always part of my workflow, I do like testing local builds but you also need to test that iOS game archives processed by Apple work and function the same way it does in your local build. On this step I normally go to Xcode and archive my current build - then I create a new version by going to itunesconnect.apple.com and in the XCode organizer I validate and upload the build.
Few things that may come up from the validation are:
- Issues with provisioning profiles.
- Issues with bundle identifiers.
- You did not select “Device SDK” within Unity and instead did “Simulator SDK”
- Icons are not the right size.
- Etc, etc, etc.
The key here is to get you passed the validation process and doing this early on will simplify the process when uploading and distributing to the App Store. Keep in mind that the process will be the same. Uploaded builds to the App Store can either be sent to Internal/External testers or Apple.
To send your build to internal or external testers:
- A build needs to be sent to apple as you described previously.
- Once a build is available in itunesconnect.apple.com go to TestFlight and select the internal or external testers you want to include, keep in mind that internal testers will need to be added as users in your Apple Developer account and external testers can be anyone with an Apple ID and an external build will need to be approved for beta testing before it can be distributed externally.
- An invitation will be sent to the test distribution from Apple and all the recipients would need do install the TestFlight app on their device.
- Once the TestFlight is installed testers will be able to provide feedback right from their TestFlight app.
- Notifications will be sent once a new version of your game is available for testing.
In conclusion, test test test as much as you can and use both ways I described to help with finding issues before players find them ;)
Thank you for your time and don't forget to subscribe to my newsletter, also be sure to find me at @dilmerv and stop by and say hi as I love to chat with everyone.