Single Build / Archive for iOS and Catalyst Build

So I am adding Catalyst support to my iOS app. I went through and updated my code and Build Settings to add Catalyst support. I can build for any iOS build or macOS build.

I went into App Store Connect and then added a macOS build. I am not able to do a single build and archive that uploads a build for both macOS and iOS.

I can do a build and archive for "Any iOS Device (arm64)" and it shows up in the iOS test flight. I can do a build and archive for "Any Mac (Mac Catalyst, arm64, x86_64) and it shows in the macOS test flight.

Maybe I'm making a bad assumption ( I could not find any documentation on it) but I assumed Catalyst was a single build and archive that showed up in BOTH macOS and iOS sections. The build settings seem to imply the build is good for a single build and archive process. I want this to be a universal app and my assumption doing it that way would keep everything in sync when you push to the App Store.

You can already download the app through the App Store but it is a version of the iPad app. I was hoping to make it more native and available in the Mac App Store without the iPhone/iPad app option.

Am I making bad assumptions? Will I just have to do two Build and Archives for every build? I just want to make sure I'm doing this correctly and the best way.

Thanks for your question, I suggest you do two separate Build and Archive processes, one for iOS and one for Mac Catalyst. What version of Xcode are you using?

Even though Mac Catalyst allows you to use a single codebase and a single Xcode project, the end result is two completely different binaries. I would recommend to use Xcode 27.0 beta X

You can also create a multiple platform and then add Mac Catalyst: “For Mac Catalyst builds, this target and its dependencies will link or embed only Mac-compatible content, and the security and App Sandbox settings will be aligned with the iOS app.”

Only one native Mac app can be added to the App Store, so make sure you select a Mac Catalyst or a Designed for iPad.

If you have Apple Vision on that multi platform will be superseded by the native Apple Vision app in the App Store.

You achieve this by ensuring that both your iOS target and your Mac Catalyst target use the exact same Bundle Identifier.

Once your Catalyst app is approved and released, it will be the only version available on the Mac App Store, and existing users of the "iPad on Mac" version will be prompted to update to your new Catalyst version.

Hope this help, please read the documentation that explains all this at

https://developer.apple.com/documentation/uikit/mac-catalyst

https://developer.apple.com/tutorials/mac-catalyst

https://developer.apple.com/documentation/UIKit/creating-a-mac-version-of-your-ipad-app

Albert  WWDR

I am running Xcode 26.5. I have not moved to trying one of the 27 betas yet.

So I assumed (and maybe incorrectly) that you would be able to archive once for an app that can generate both a Catalyst build AND an iOS build. Since it’s the same source code and bundle either way it just seemed like it should be a single process. I couldn’t find documentation on how a universal Catalyst/iOS bundle was structured, but maybe that’s because they don’t exist as one archive process.

What do you mean by “You can also create a multiple platform and then add Mac Catalyst: “For Mac Catalyst builds, this target and its dependencies will link or embed only Mac-compatible content, and the security and App Sandbox settings will be aligned with the iOS app.” That sounds similar to a universal binary which is maybe where my confusion lies.

Thank you for helping out. I greatly appreciate it. :)

@RebelPadawan Thanks for your reply.

I would really encourage you to follow the documentation I have provided to get a better understanding of the multiple platforms and how works with Mac Catalyst.

To create an archive for the Mac Catalyst version, choose a run destination that includes "Mac Catalyst" in its name. For an app built with Designed for iPad, create a single archive using iPad as the run destination or any run destination that includes "Designed for iPad" in its name. These run destinations produce the same archive.

Also when you create a new project when you add a Mac Catalyst target Xcode will give you 2 options. Of course the one "Designed for iPad" that I believe you are referring to will be aligned with iOS as you said.

Resources: https://developer.apple.com/documentation/xcode/creating-a-multi-platform-binary-framework-bundle

Wish you luck on your adventure.

Albert  WWDR

Single Build / Archive for iOS and Catalyst Build
 
 
Q