SwiftUI iOS App可以在Mac App Store的“iPhone 与 iPad App”栏,搜索并下载,默认会提示“专为iPad”设计。

iOs App上架Mac App Store配置App Store Connect和Xcode项目。
上架Mac App Store流程
1、App Store Connect添加Mac平台
打开App Store Connect网页,点击“App”,找到对应的iOS App。
在左侧点击“添加平台”-“macOS”,添加后可以上传Mac端App预览和截屏等内容。
注意:这里不能直接使用iOS App的构建版本。
2、iOS项目添加Mac (Catalyst) 支持平台
iOS App默认支持平台为Mac (Designed for iPhone),构建版本无法在App Store Connect中选择。
打开Xcode,找到项目-“TARGETS”-“General”-“Supported Destinations”支持平台。
添加“Mac (Catalyst)”,Xcode项目配置完成后,可以单独构建Mac应用。
3、开启Sandbox功能
应用上传到App Store Connect时,Xcode会检查Sandbox功能,需要在配置中启用Sandbox。
项目-“TARGETS”-“Signing & Capabilities”,点击“Capability”,选择App Sandbox功能,如果没有功能需求,不需要勾选任何选项。
App Sandbox详细内容,请了解《macOS管理App Sandbox权限》。
注意事项
1、OptimizationLevelError: Not built with -Onone
该问题表示当前Scheme为Release,无法预览。需要将Scheme改为Debug模式。
2、The CFBundleVersion of an app extension (‘1’) must match that of its containing parent app (‘2’).
该问题表示主App和App扩展的构建版本不同。
添加Mac (Catalyst) 后,Xcode会检查主App和App扩展的构建版本。
解决方案: Xcode -“TARGETS”-“General”-“Identity”-“Build”,检查主App和App扩展的字段,确保Build字段保持一致。
3、Your target is built for macOS but contains embedded content built for the iOS platform (BankletWidgetExtension.appex), which is not allowed.
该问题表示iOS的小组件只支持iOS,不支持Mac。
解决方案:Xcode-“TARGETS”-“General”-“Supported Destinations”中,添加 Mac (Catalyst)。
4、’ActivityAttributes’ is unavailable in Mac Catalyst
该报错表示Live Activity(ActivityKit)在 Mac Catalyst 上根本不存在,Live Activity 的代码,必须只在 iOS / iPadOS 编译。
解决方案:
#if !targetEnvironment(macCatalyst)
import ActivityKit
import WidgetKit
// 所有 Live Activity 相关代码
#endif
或者隐藏Live Activity代码。
4、App sandbox not enabled. The following executables…
当应用打包时,提示App sandbox报错,原因为Mac Catalyst版本提交到App Store时,Mac端要求开启App Sandbox,否则无法通过notarization或上传App Store。
解决方案为,开启App Sandbox。
总结
iOS App启用Mac (Catalyst) 后,构建应用会被视为macOS应用,而不是iOS 应用。
在上传构建版本后,App Store Connect中,只能在macOS构建版本中选择。
如果需要上传iOS和Mac两个构建版本,就需要新增/删除Mac (Catalyst)支持平台,来构建对应的版本。
iOS App启用 Mac (Catalyst) 后,可能存在一些报错,简单的问题已经罗列在“注意事项”中。
如果iOS支持多个图标的话,App Store Connect中Mac构建版本的默认图标可能和项目的默认图标不一致,但是TestFlight下载的应用图标,还是以项目的默认图标为准,有类似问题的可以选择忽略。
相关文章
1、macOS管理App Sandbox权限:https://fangjunyu.com/2025/06/20/macos%e7%ae%a1%e7%90%86app-sandbox%e6%9d%83%e9%99%90/
