Submitting a Unity 3D Game to the Mac App Store


Welcome back to another episode of Continuous Improvement! I’m your host, Victor, and in today’s episode, we’ll be diving into the process of deploying a Unity 3D game to the App Store.

Now, if you’ve ever been through the process of releasing a game, you know it’s not always straightforward. It requires careful planning, attention to detail, and some technical know-how. In fact, just the other day, I went through this process myself, and let me tell you, it was quite the journey. But don’t worry, because today, I’m going to walk you through the key steps I took to successfully deploy my game to the App Store.

Step one: Unity Build Settings. In Unity, navigate to “File,” then “Build Settings.” From there, select “Platform: PC, Mac & Linux Standalone,” and set the “Target Platform” to “Mac OS.” Now, click on “Player Settings…” and make sure to configure the following options: set “Default is Full Screen” to true, “Default is Native Resolution” to true, “Capture Single Screen” to false, “Display Resolution Dialog” to false, and enable “Mac App Store Validation.”

Step two: Info.plist. In Finder, right-click on your game app and select “Show Package Content.” Locate and open the Info.plist file. Ensure that the CFBundleGetInfoString is a valid string and that the CFBundleIdentifier and CFBundleSignature have values that match your bundle ID. Additionally, make sure that the CFBundleShortVersionString and CFBundleVersion are in the correct format, such as “x.x.x.” Lastly, add a new key called “LSApplicationCategoryType” with the value “public.app-category.games.”

Step three: Entitlements. Create a file named “GAMENAME.entitlements” in your Build folder. Inside this file, include the following:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>com.apple.security.app-sandbox</key>
        <true/>
    </dict>
    </plist>

Step four: Apple Developer Account. Assuming you already have a paid Apple Developer account, visit the Apple Developer website and go to “Certificates.” Select the dropdown for “OS X” and create new certificates for “Mac App Distribution” and “Mac Installer Distribution.” Don’t forget to save these certificates for later use. After that, go to “Identifiers” and create a Wildcard App ID that matches your bundle ID.

Step five: iTunes Connect. Log in to iTunes Connect, navigate to “My Apps,” and click on the ”+” button to create a new Mac App. Fill in all the required fields, making sure that the Bundle ID matches the one from previous steps. Additionally, remember to take screenshots and crop them to the correct sizes: 1280 x 800 pixels, 1440 x 900 pixels, 2560 x 1600 pixels, and 2880 x 1800 pixels.

Step six: Application Loader. Download and install the latest version of Application Loader. In the terminal, fix the content permissions using the command “chmod -R a+xr /path/to/GAMENAME.app.” Then, sign the app with the entitlements document created earlier using the command “codesign -f -s ‘3rd Party Mac Developer Application: DEVELOPER NAME’ —entitlements “GAMENAME.entitlements” “/AppPath/GAMENAME.app”.” You may encounter an error about code objects not being signed, but don’t worry! You can use the deep-sign command to resolve this issue. Next, build the “.pkg” file using the command “productbuild —component GAMENAME.app /Applications —sign ‘3rd Party Mac Developer Installer: DEVELOPER NAME’ GAMENAME.pkg.”

Remove any existing instances of the game app from your machine, and finally, verify the install by using the command “sudo installer -store -pkg GAMENAME.pkg -target /.” Now, open the Application Loader and choose ‘Deliver Your App,’ selecting the GAMENAME.pkg. If all goes well, the upload should succeed. However, if you encounter any specific errors, address them accordingly.

Step seven: Select the Build. Sometimes, you may receive an email indicating issues with your build’s signature. This often occurs when a subcomponent hasn’t been signed correctly. In such cases, consult Apple’s documentation for further guidance. Otherwise, return to iTunes Connect, select your uploaded build, and change the status from “Preparing for Review” to “Waiting For Review,” “Review,” and finally, “Ready for Sale.”

And there you have it! The key steps to successfully deploying a Unity 3D game to the App Store. I hope this episode has been helpful for those of you going through the same process. Remember, continuous improvement is the key to success, so don’t be afraid to learn from your mistakes and keep refining your process. Thanks for tuning in to Continuous Improvement. I’m Victor, and until next time, keep striving for greatness.