As we were nearing the finish of developing an MVP for our game MarsX, we decided to attempt packaging a build for iOS as well, as we had only tested on Android up until this point. That entailed borrowing a Mac computer because Apple requires it to package an app (we’re grateful to Celt for supplying one), installing all the coding editors, and hoping that with the press of a button, our game would have a build. What we didn’t expect were the difficulties we experienced on our route to a single build, which took us many days to achieve due to Apple’s chosen process.
After downloading the most recent copy of our project, I began updating its Unreal Engine version (since the version of MacOS I was using wasn’t compatible with the correct version of XCode, which was required for our version of the project). That’s when I saw how little information about compiling anything is displayed directly on the interface, instead forcing you to find your way to the logs, which are in a completely separate path than the installation folder of UE or our downloaded project. Sometimes I tried rebuilding our project using XCode, but when it fails, it doesn’t always show what went wrong, other than whatever script/step of the build failed.
When I finally got our project open in the editor, I discovered that packaging wasn’t as straightforward as selecting a platform and tapping Package Project as it is on Android.
To begin, you must ensure that you have particular licences and provider profiles loaded on your Mac, which you can find in your Apple Developer account, but only if you’ve subscribed to their $100 annual program to package a game (quite an expensive charge to just test your game).
After addressing all of the issues that occurred when UnrealPak was generating our game files, we were able to proceed with the processes for publishing our game on App Store Connect, until we were alerted via email that our app requires an explanation as to why it requires a camera. Our games do not require a camera; we simply needed to specify this in the code. Finally, after all those steps, we had our first iOS build uploaded. The testers we added on our account were able to download and play the game via Testflight without any issues. Since Apple is very strict about installing unknown applications, first we tried without Testflight and it required timed licences and wired connection to the computer which was a headache, Testflight is at least easy to use and allows you to quickly update your app for the testers when a new build is uploaded.
As this venture spanned across a few weeks, I had already forgotten all the steps I had to make, so the next time I tried it took much less time, but I made sure to write things down.
Alen from KRE10 in collaboration with J&A marsian and Celt