文章

准备分发你的 App

在分发你的 App 之前,配置信息属性列表并添加图标。

概览

在将构建版本上传到 App Store Connect 或导出以在 App Store 以外分发之前,请先为你的 Xcode 项目做好分发准备。提供所有必要的 App 相关信息,如唯一的套装 ID、构建版本字符串、App 图标和启动屏幕。选取设置时应小心谨慎,因为大多数信息在你通过 TestFlight 或 App Store 分发构建版本后便不能再编辑。

有关 App Store Connect 中要求输入的其他信息,请参阅“App Store Connect 帮助”中的“必填项、可本地化以及可编辑的属性”和“App 信息”(其中包含更多详细信息)。

设置套装 ID

套装 ID (CFBundleIdentifier (英文)) 是你 App 在整个系统范围内唯一的标识符。当你从模板创建 Xcode 项目时,它默认为组织 ID 加上你以反向 DNS 格式输入的 App 名称。例如,套装 ID 将变为 com.example.mycompany.HelloWorld

如果你的组织 ID 在所有开发者中是唯一的,并且你的 App 名称在你的组织内是唯一的,那么默认的套装 ID 也应该是独一无二的。例如,你可以将组织的域名用作组织 ID,确保套装 ID 是独一无二的。

要通过 TestFlight 和 App Store 分发 App,你需要在 App Store Connect 中创建 App 记录,并输入与项目中套装 ID 匹配的套装 ID。将第一个构建版本上传到 App Store Connect 后,你便无法更改套装 ID,因此请在创建项目或之后编辑套装 ID 时仔细选择组织 ID。在将 App 提交到 App Review 前,你都可以编辑 App 的名称。

在项目编辑器内“General”(通用) 标签页的“Identity”(标识) 部分中,为 App 目标设置套装 ID

截屏中显示了“General”(通用) 面板的套装 ID 栏位。图中显示了你选取目标、点按“General”(通用) 和显示“Identity”(标识) 设置的位置。

为通过 Mac Catalyst 构建的 Mac App 设置套装 ID

默认情况下,通过 Mac Catalyst 构建的 Mac App 使用与 iPad App 相同的套装 ID;这样,你可以在 App Store 上以通用购买项目形式一同提供这些 App (请参阅“提供通用购买项目”)。

如果你想要另外提供 Mac 版本,请在 Xcode 中更改其套装 ID,然后在 App Store Connect 中为 Mac App 创建独立的 App 记录。在项目编辑器中,选取 iOS 目标,然后点按“Signing & Capabilities”(签名和功能) 面板。在 macOS 下,清除“Use iOS Bundle Identifier”(使用 iOS 套装标识符) 复选框。在下方出现的文本栏中,输入 Mac 版本的套装 ID。

如果你有 App 内购买项目或订阅项目,请在 App Store Connect 中重新为 Mac App 创建这些项目。有关更多信息,请参阅“App Store Connect 帮助”中的“创建 App 内购买项目”和“创建自动续期订阅”。

设置版本号和构建版本字符串

版本号 (CFBundleShortVersionString (英文)) 和构建版本字符串 (CFBundleVersion (英文)) 用于在整个系统范围内唯一地标识 App 的对应构建版本。对于通过 TestFlight 或 App Store 分发的 App,报告服务会为 App 的每个构建版本生成崩溃、能耗和指标报告。版本号也会显示在 App Store 中,对于 macOS App,版本号和构建版本字符串还会显示在“关于”窗口中。

版本号和构建版本字符串应采用“[Major].[Minor].[Patch]”格式,其中 Patch 是维护版本,如 10.14.1。这两个键都是 App Store 要求提供的。在创建项目后,应设置版本号和构建版本字符串。在归档你要分发的构建版本之前,应增加构建版本字符串。在你为 App 创建新的版本时,例如在 App Store Connect 中创建新的 App 版本时,再增加版本号。

对于 macOS App,在分发新构建版本前必须先增加构建版本字符串。

在项目编辑器内“General”(通用) 面板的套装 ID 下,设置版本号和构建版本字符串

设置 App 类别

类别有助于用户在 App Store 中发现你的 App。你可以在 App Store Connect 中设置主要和次要类别,你的 App 会在 App Store 中列在这些类别下。对于 macOS App,你还应在项目中设置 App 的主要类别,并且它必须与你在 App Store Connect 中设置的主要类别匹配。

在项目编辑器的“General”(通用) 面板中,从“Identity”(标识) 部分的“App Category”(App 类别) 弹出式菜单中选取一个类别。如需关于如何选择最为准确和有效的类别的指导,请参阅“选取类别”。

截屏中显示了“App Category”(App 类别) 弹出式菜单在“General”(通用) 面板上“Identity”(标识) 部分中的位置。

将项目分配给团队

如果你尚未分配,请将项目分配给团队。例如,如果要使用 TestFlight 或通过 App Store 分发你的 App,请将项目中的所有目标分配给已加入 Apple Developer Program 的某个团队。在你上传或导出构建版本时,Xcode 会在关联的开发者账户中创建必要的签名素材。

在项目编辑器的“Signing & Capabilities”(签名和功能) 面板上,从“Team”(团队) 弹出式菜单中选取一个团队。

截屏中显示了用于将项目分配给团队的“Signing”(签名) 控件。图中显示了选择项目、选取目标、点按“Signing & Capabilities”(签名和功能) 和选取某个团队的位置。

编辑部署信息设置

由于 App Store 中之后会用到一些设置,例如你的 App 所支持的操作系统和设备,因此应编辑部署信息设置

在项目编辑器的“General”(通用) 面板中,从“Deployment Info”(部署信息) 设置下的“Target”(目标) 弹出式菜单中选取可运行你的 App 的最低操作系统版本。

截屏中显示了 iOS App 在项目编辑器内“General”(通用) 面板上的“Deployment Info”(部署信息) 设置,你可以在其中设置部署目标和操作系统版本。

对于 iOS 和 watchOS App,还应在“Device”(设备) 列下选择支持的设备。要为 iPad App 创建 Mac 版本,请同时选中“Device”(设备) 下的“iPad”和“Mac”框 (请参阅“为你的 iPad App 创建 Mac 版本”)。

要为 iPad App 启用多窗口,请选中“Deployment Info”(部署信息) 设置底部的“Supports multiple windows”(支持多窗口) 复选框,然后点按“Configure”(配置) 箭头以编辑更多设置。有关详细信息,请参阅“指定你的 App 支持的场景 (英文)”;如需示例代码,请参阅“在 iPad 上支持多窗口 (英文)”。

添加 App 图标和 App Store 图标

添加一个图标,以供在设备的不同位置和 App Store 上代表你的 App。

如果想要通过 App Store 分发 App,你还需要添加专用于 App Store 的图标

从模板创建的项目中已包含 App 图标的图像集。在“General”(通用) 面板的“App Icons and Launch Images”(App 图标和启动图像) 部分中,点按 AppIcon 图像集旁边的箭头,以打开素材目录。然后,将 App 图标的各种变体拖入素材目录内详情区域的空槽中。

截屏中显示了一个 iOS App 的 AppIcon 图像集,你可以将 App 图标的各种变体拖入这里的空槽中。

App Store 图标空槽在素材目录中的位置取决于平台。对于 iOS App,请将分辨率适用于 App Store 的图像拖入“App Store iOS”空槽中,对于 macOS App,则应将它拖入“App Store - 2x”空槽中。对于其他平台和较旧的 Xcode 版本,请参阅“添加 App Store 图标”。

对于图标指标,请参阅“人机界面指南”。

提供启动屏幕 (iOS)

“启动屏幕”是 App 启动后立即显示的用户界面文件,然后该界面会迅速被 App 的第一个屏幕所取代。启动屏幕会在 App 启动期间显示一些内容供用户查看,从而增强用户体验。

在从模板创建项目时,你可以编辑项目中称为 LaunchScreen.storyboard 的启动屏幕文件。又或者,你可以向现有的项目中添加启动屏幕文件

有关设计启动屏幕的信息,请参阅“人机界面指南”中的“启动屏幕”。

提供用于访问受保护资源的使用说明

你的 App 首次尝试访问受保护的资源时,系统会提示用户授予权限。然后,它会生成一个对话框,内含 App 的名称和你提供的“使用说明”。例如,用于访问用户位置数据的使用说明可以是“我们会根据你的位置向你提供前往目的地的逐向导航”。如果用户授予权限,系统会记录下来,以后不会再针对该资源提示用户。如果用户拒绝授予权限,对该资源的访问以及以后的所有尝试都会失败。

你必须在信息属性列表 (英文) 中为 App 要访问的所有受保护资源提供使用说明,例如用户的位置、日历、提醒事项和通讯录等受保护资源。另外还应针对摄像头和麦克风等配件提供使用说明。

要进一步了解,请参阅“请求访问受保护的资源 (英文)”。

配置 App 沙盒和强化版运行时 (macOS)

如果你通过 App Store 分发 macOS App,那么必须启用 App 沙盒。如果你对 macOS App 进行公证以在 App Store 之外分发,那么必须启用强化版运行时,同时也可选择启用 App 沙盒。

要进一步了解强化版运行时,请参阅“强化版运行时 (英文)”。有关公证的信息,请参阅“在分发前对 macOS 软件进行公证”。

设置版权键 (macOS)

对于 macOS App,在将 App 上传到 App Store Connect 前,应先在信息属性列表中设置版权键 (NSHumanReadableCopyright (英文))。

在 macOS 中,如果你不明确地将版权字符串传递给用于显示“关于”窗口的 orderFrontStandardAboutPanel(_:) (英文) 方法,“关于”窗口中会改为显示版权键的本地化版本。例如,如果你将版权键设置为 @2002-2019 My Company,该内容会显示在“关于”窗口的底部。你可以为支持的每种语言提供信息属性列表的本地化版本。

添加出口合规证明信息

如果你在美国或加拿大以外分发 App,你的 App 需要遵守美国的出口法律。如果你的 App 使用加密技术,则需要满足美国的出口合规要求。你可以在信息属性列表 (英文) 中提供出口合规证明信息,从而避免在每次提交 App 审核时回答 App Store Connect 向你提出的相关问题。

要进一步了解,请参阅“遵守加密出口条例 (英文)”。

另请参阅

分发