Mac App Store Guide
This page gives a brief overview of how to submit your Wails App to the Mac App Store.
- You will need to have an Apple Developer account. Please find more information on the Apple Developer Program site
- You will need to have your Certificates, Identifiers, and App created on the developer portal. More on this below
- Xcode command line tools will need to be installed on your local machine
Create Certificates and Identifiers
- Go to your Apple Developer Account
Certificates, Identifiers & Profiles, click
Identifiersand Register a New App ID. Use the format (com.example.app)
- Under the same page click
Certificatesand generate new Certificates for Mac App Store Distribution. Download them and import the certificates into Keychain on your local machine.
Create App Submission
- Go to the App Store Connect Site
- Register a new application and link the bundle ID that you created in the previous step
- Populate your app with the correct screen shots, descriptions, etc. as required by Apple
- Create a new version of your app
Create Provisioning Profile
- Go to the Apple Developer Profiles page
- Add a new provisioning profile for Mac App Store Distribution
- Set the Profile Type as Mac and select the App ID for the application created above
- Select the Mac App Distribution certificate
- Name the Provisioning Profile embedded and download the created profile.
Mac App Store Process
Enable Apple's App Sandbox
Apps submitted to the Mac App Store must run under Apple's App Sandbox. You must create an
entitlements.plist file for this to work. The recommendation is to create this file under this path
Example Entitlements File
This is an example entitlements file from the RiftShare app. For reference please put in the entitlements your app requires. Refer to this site for more information. You will need to replace the Team ID and Application Name with the ones you registered above.
<?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">
Add the Embedded Provisioning Profile The Provisioning Profile created above needs to be added to the root of the applicaton. It needs to be named embedded.provisionprofile.
Build and Sign the App Package
The following is an example script for building and signing your app for Mac App Store submission. It assumes you are running the script from your root project directory.
Note the certificates for signing the app and signing the installer are different. Please make sure both are imported into Keychain. Find the strings in Keychain and insert them below. Populate your certificate names, and app name below. Running the following script will generate a signed
app.pkg file in the root directory of your app.
APP_CERTIFICATE="3rd Party Mac Developer Application: YOUR NAME (CODE)"
PKG_CERTIFICATE="3rd Party Mac Developer Installer: YOUR NAME (CODE)"
wails build -platform darwin/universal -clean
cp ./embedded.provisionprofile "./build/bin/$APP_NAME.app/Contents"
codesign --timestamp --options=runtime -s "$APP_CERTIFICATE" -v --entitlements ./build/darwin/entitlements.plist ./build/bin/$APP_NAME.app
productbuild --sign "$PKG_CERTIFICATE" --component ./build/bin/$APP_NAME.app /Applications ./$APP_NAME.pkg
Upload App Bundle
You will need to upload the generated package file and associate it to your Application before you will be able to submit it for review.
- Download the Transporter App from the Mac App Store
- Open it and sign in with your Apple ID
- Click the + sign and select the
APP_NAME.pkgfile that you generated in the previous step. Upload it
- Go back to the App Store Connect site and navigate back into your app submission. Select the version that you are ready to make available on the App Store. Under
Buildselect the package that you uploaded via Transporter.
That's it! You can now use the site to submit your App for review. After a few business days if all goes well you should see your App live on the Mac App Store.