About one week ago I decided to change my release plans, I previously wanted to release my game to iOS only and then out of the nowhere MAC came to mind which I never thought to be a problem as I have been playing Stickman World on my MAC / PC and it was fully supported and playable when exporting as a MAC or PC Universal build, however it wasn't too far into the process that uploaded my MAC Build to the App Store up to the point where I got errors in the Application Loader saying things like "I haven't signed all the code", which is why I am writing this, I want everyone to be able to just use this document and follow step by step what I had to do and hopefully you won't encounter the same problems I did.
- This may be obvious but you will need to create your certificates and distribution provisioning profile in Member Center at Apple.
- In Unity click on Build Settings / PC, MAC & Linux Standalone / Select Target Platform as MAC OSX / Select Architecture as Universal / Uncheck Development Build.
- Click on Player Settings on the same window / and Under Resolution and Presentation make sure "Mac App Store Validation" is checked.
- Click on Build
- Once your build is generated, go to the build file that was generated and right click "Show Package Contents" then browse to /Content/ and modify the Info.plist file with your own information. You can also use this template I created under github Plist Template and replace your original plist with my template, please be sure to update the values as needed.
- Now this part is critical and is what I was missing. Your distribution profile generated from the Member Center must be downloaded, make sure you download it and then rename it to "embedded.provisionprofile" then place it in the same location where your mac game build was generated under. In my own setup I have a folder called MACBuilds and inside I have [MyGameBuild] and on the same level I have "embedded.provisionprofile"
- Now we need to create an entitlements file which is required and validated once you upload your build to iTunesConnect. So for that step go to Entitlements to download an entitlements template, once you download it change its name and place it at the same level as on the previous step.
- Now here comes the signing piece and to avoid complexities about which commands to run and on which order, I'm providing you with bash script which should do the signing for you. Go to MAC Signing Script to download the script and just modify all the instances of [YourGameName] with your own game name and also [Your Name] with your own certificate name. Then make sure the script lives on the same directory as described on the previous step.
- Now make sure "MAC_Build_Sign_Game.sh" has +x (execution rights) and to run it simply type ./MAC_Build_Sign_Game.sh from the terminal which should start signing your game build and should also generate YourGameName.pkg
- This step is also critical, the latest version of Xcode 8.2.1 comes with Application Loader version 3.6 well this version does not work with what we're about to do, for some reason we need to download Application Loader 3.0 which is available through itunesconnect.apple.com and then by logging in and selecting one of your apps. Once you download it and install it proceed to the next step.
- Now open Application Loader 3.0 and upload YourGameName.pkg
If you have any questions please be sure to let me know and I will be more than happy to help.
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.