App will not archive a Catalyst Version

I have an iOS app which I'm trying to ship to the Mac App Store.

The app was created for iOS 7, but has been kept up to date. I mention it because it has an old project file.

I'm able to build and run the app on my Silicon Mac fine.

However, when I archive with target "My Mac (Designed for iPad)", I get an archive of type "iOS App Archive".

Here's what I've checked:

  • Target is set to “My Mac (Designed for iPad)”
  • “SUPPORTS_MACCATALYST” is set to “YES” on the main target and the extensions
  • “MACOSX_DEPLOYMENT_TARGET” set to “14.6” on the main target and the extensions
  • “Supported Platforms” is set to “iOS” except for Watch targets and targets which also run on watchOS.
  • If I filter the build logs for "Catalyst" there are no results. If I filter them for "Mac" there are no relevant results.
  • Clean build folder
  • Delete derived data
  • Restart Xcode
  • Xcode Version 16.2 (16C5032a)
  • macOS Version 15.2

Other notes:

  • The app has a widget extension and an intents extension and two custom frameworks
  • When I try and archive for Mac using Xcode Cloud, it runs for 90 minutes and then fails. I suspect it’s related to this issue but I’m not sure.

I’ve had issues like this solved with DTS before, but that isn’t allowed any more.

Any help would be greatly appreciated.

Answered by DTS Engineer in 822993022

These Designed for iPad apps are iPad apps, so they show up in the iPhone and iPad Apps tap of the App Store.

To help put clarifications around these features, Running your iOS apps in macOS is the documentation around this Designed for iPad feature. The starting paragraph reads:

iOS Apps on Mac runs your unmodified iPhone and iPad apps on Apple silicon with no porting process. Your apps use the same frameworks and infrastructure that Mac Catalyst apps use to run, but without the need to recompile for the Mac platform.

While that uses Mac Catalyst as infrastructure hidden under the hood, it's not the same thing as deliberately building a Mac Catalyst app through a dedicated build destination. When you submit a Mac Catalyst app created with a dedicated build destination to the App Store, it's a separate build and separate submission so that you can manage the App Store details for macOS separate from your iOS app.

As to your next steps, I'd look at some of the destination options in your Xcode project to see if you can suss out why the Mac Catalyst destination isn't visible, but the Designed for iPad destination currently is.

— Ed Ford,  DTS Engineer

Written by lewis42 in 772992021
I’ve had issues like this solved with DTS before, but that isn’t allowed any more.

We're still here to help! We just prefer doing it here in the forums so that the entire community can benefit from your questions and the discussion.

Target is set to “My Mac (Designed for iPad)”

This is the first place to start. Your selection here is for testing your unmodified iOS app to run on your Apple silicon Mac. Mac Catalyst is different, in that it allows you take your iOS app, optionally modify it for enhanced macOS support, and run it on a Mac that is either Intel-based or Apple silicon. The destination menu item for Mac Catalyst reads My Mac (Mac Catalyst).

Since you name Mac Catalyst, I presume that's the choice you intentionally want, but this is a good place to stop and check if the first option is all you intended. If it is, then you don't need to do anything more, and you can stop here.

If Mac Catalyst is what you're looking for, then you should confirm it is in the Supported Destinations list — that's in the General tab for your app target. Since you have SUPPORTS_MACCATALYST set, that's probably already the case. That destination list also shouldn't contain the Designed for iPad option. If it does, remove it (and that is controlled by the SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD build setting).

An additional note about build settings for Mac Catalyst — don't override anything specifically for macOS support. For example, you mention MACOSX_DEPLOYMENT_TARGET, but Mac Catalyst is based on the iOS SDK, so the deployment target is still expressed using iOS version numbers. As general advice, if you have any overridden build settings for macOS due to trying to build a Mac Catalyst app, you should revert them to the standard iOS value, as Xcode will handle the translation from iOS values into macOS values behind the scenes of the build for you.

—Ed Ford,  DTS Engineer

Thanks for this Ed, I had forgotten (or never knew) this subtlety.

Written by lewis42 in 772992021
I have an iOS app which I'm trying to ship to the Mac App Store.

In light of your answer I guess my question is:

Can I ship a "My Mac (Designed for iPad)" build to the Mac App Store, with Mac Screenshots and appear in the "Mac Apps" tab and not the the "iPhone & iPad Apps" tab?

If I can, what do I need to do? My current builds don't show up as available to ship for the Mac App Store.

Accepted Answer

These Designed for iPad apps are iPad apps, so they show up in the iPhone and iPad Apps tap of the App Store.

To help put clarifications around these features, Running your iOS apps in macOS is the documentation around this Designed for iPad feature. The starting paragraph reads:

iOS Apps on Mac runs your unmodified iPhone and iPad apps on Apple silicon with no porting process. Your apps use the same frameworks and infrastructure that Mac Catalyst apps use to run, but without the need to recompile for the Mac platform.

While that uses Mac Catalyst as infrastructure hidden under the hood, it's not the same thing as deliberately building a Mac Catalyst app through a dedicated build destination. When you submit a Mac Catalyst app created with a dedicated build destination to the App Store, it's a separate build and separate submission so that you can manage the App Store details for macOS separate from your iOS app.

As to your next steps, I'd look at some of the destination options in your Xcode project to see if you can suss out why the Mac Catalyst destination isn't visible, but the Designed for iPad destination currently is.

— Ed Ford,  DTS Engineer

App will not archive a Catalyst Version
 
 
Q