Distribute a Mac app built with Mac Catalyst

If you create a Mac app from an iPad app using Mac Catalyst, Xcode configures the Mac app to use the same bundle ID as the iPad app so that you can later distribute the apps together, as a universal purchase, on the App Store. Alternatively, you can set a different bundle ID for the Mac app and distribute the Mac app separately.

Important: If you created your Mac app using an earlier Xcode release that used the maccatalyst prefix for the Mac bundle ID and want to use universal purchase, change the app and any app extensions Derive Mac Catalyst Product Bundle Identifier (DERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIER) build setting from YES to NO.

Step 1: Create a Mac version of an iPad app

First create the macOS version of the iPad app.

Step 2: Configure the Mac capabilities and modify the code

Then configure the capabilities and modify the code of the Mac app. For details, go to Creating a Mac Version of Your iPad App.

Step 3: Run the Mac version from Xcode

In the toolbar, choose My Mac from the scheme menu, then click the Run button. You may need to register the Mac you use for development.

Note: The macOS and iOS builds use separate provisioning profiles but the same Apple Development and Apple Distribution certificates for code signing.

Step 4: Distribute and test the Mac version

TestFlight is not available for macOS apps. Instead, to test the Mac build in the real world, distribute the Mac app to registered computers. Choose My Mac as the run destination when you archive the Mac app. The archive will appear under macOS Apps on the left in the Archives organizer.

For the iPad version, distribute it using TestFlight or distribute it to registered devices.

Step 5: Create an app record and configure universal purchase in App Store Connect

Before you can upload builds and distribute the apps through the App Store, or TestFlight for the iPad version, you need to create an app record in App Store Connect.

To distribute the apps together as a universal purchase, create one app record to your account, then add an iOS and macOS platform to the record.

If you're not using universal purchase, set a different bundle ID for the Mac app and create a separate app record for the Mac app in App Store Connect.

Step 6: Upload the Mac app and iPad app separately to App Store Connect

To distribute a universal purchase through the App Store, create an archive for each platform and upload them to App Store Connect separately. Choose My Mac as the run destination when you archive the Mac app.

Step 7: Optionally, distribute the Mac version outside of the Mac App Store

You can distribute the Mac version outside the Mac App Store but need to upload the app to be notarized before doing so.