SwiftUI iOS App上架Mac App Store
SwiftUI iOS App上架Mac App Store

SwiftUI iOS App上架Mac App Store

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代码。

5、App sandbox not enabled. The following executables…

当应用打包时,提示App sandbox报错,原因为Mac Catalyst版本提交到App Store时,Mac端要求开启App Sandbox,否则无法通过notarization或上传App Store。

解决方案为,开启App Sandbox。

6、打包的应用为iOS平台

打包应用时,Type需要为macOS App Archive,如果显示iOS平台,那么上架后不能选择Mac App。

需要将环境改为Debug环境,以及新增Mac (Catalyst)后,重新编译程序。

编译后的程序重新打包,会自动变成macOS App。

7、App应用名称导致拒审问题

iOS App首次上架Mac App Store,极有可能被Apple以Guideline 2.3.8 – Performance条款驳回。

原因为:

我们注意到您在 App Store 中显示的应用名称与安装到 macOS 后显示的应用名称不完全一致。

App Store Connect 名称:Banklet - 储蓄计划
安装后应用名称:piglet
启动后应用名称:piglet
“关于/退出”菜单中的应用名称:piglet

因为iOS应用名称和mac应用名称显示不一致,mac需要配置更多的地方,详细请见《macOS本地化应用程序名称》

总结

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/

   

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开发者。

欢迎加入我们的 微信交流群QQ交流群,交流更多精彩内容!
微信交流群二维码 QQ交流群二维码

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注