将 watchOS 应用部署到 App Store

重要

请务必查看“故障排除部分,了解可能存在的任何问题。

  • 请确保你已执行以下操作:

  • iTunes 连接

    • 创建 iOS 应用条目(或向现有应用添加 新版本 )。
    • 添加“监视”图标和屏幕截图。
  • 然后在 Visual Studio for Mac(当前不支持 Visual Studio):

    • 右键单击 iOS 应用,然后选择“ 设为启动项目”。
    • 更改为 App Store 配置。
    • 使用存档功能创建应用程序存档。
  • 最后,切换到 Xcode 6.2+

    • 转到 窗口 > 管理器 并选择“ 存档”。
    • 从列表中选择应用程序和存档。
    • (可选) 验证。。。 存档。
    • 提交。。。存档并按照步骤上传到 iTunes 连接以供审核和批准。

阅读下面与这些项目相关的特定提示。 如果遇到问题,请参阅“故障排除”部分。

分发预配配置文件

若要为 App Store 部署生成,需要为解决方案中的每个应用 ID 创建 分发预配配置文件

如果你有一个野生应用 ID卡应用 ID,只需要一个预配配置文件;但如果每个项目都有单独的应用 ID,则需要为每个应用 ID 设置配置文件:

The App Store Distribution profile

创建所有三个配置文件后,它们将显示在列表中。 请记住下载并安装每一个(双击):

The list of available profiles

可以通过选择“生成 > iOS 捆绑签名”屏幕并选择 AppStore | i电话配置来验证项目选项中的预配配置文件。

预配 配置文件 列表将显示所有匹配的配置文件 - 应会看到在此下拉列表中创建的匹配配置文件。

The iOS Bundle Signing dialog

iTunes Connect

请遵循应用分发概述,特别是:

在 iTunes 连接中配置应用时,不要忘记添加“监视”图标和屏幕截图:

The Watch icon and screenshots in iTunes Connect

图标文件应为 1024x1024 像素,并在显示时应用圆形掩码。 该图标不应具有 alpha 通道。

至少需要一个屏幕截图,最多可以提交 5 个屏幕截图。 它们应为 312x390 像素,并演示监视应用的操作。 可以使用 42mm 监视模拟器来获取此大小的屏幕截图。

Visual Studio for Mac

  1. 确保 iOS 应用是启动项目。 如果未设置,请右键单击以设置它:

    Setting the startup project

  2. 选择 AppStore 生成配置:

    The AppStore build configuration

  3. 选择“ 生成 > 存档 ”菜单项以启动存档过程:

    The Build menu

还可以选择 “查看 > 存档...” 菜单项以查看以前创建的存档。

The Archives view

Xcode

Xcode 将自动显示在 Visual Studio for Mac 中创建的存档。

  1. 启动 Xcode 并选择 窗口 > 管理器

    The Window menu

  2. 切换到 “存档 ”选项卡,然后选择使用 Visual Studio for Mac 创建的存档:

    The Archives tab

  3. (可选)验证... 存档,然后选择“提交...”,将应用上传到 iTunes 连接。

  4. 选择开发团队(如果你属于多个),然后确认提交:

    The development team section

  5. 再次访问 iTunes 连接以查看上传的二进制文件。 转到应用的配置页, 然后从顶部菜单中选择“预发布 ”以查看 “生成 ”列表:

    The apps configuration page in iTunes Connect

然后,可以在“版本”页上提交应用以供审批。 有关详细信息, 请参阅 iOS 应用分发概述

疑难解答

以下是提交到 App Store 时可能会遇到的一些错误,以及修复这些错误所要执行的步骤。

Visual Studio for Mac 中不显示存档菜单选项

按照上述步骤配置用于存档的解决方案。 如果无法正确设置启动项目,请确保先将生成配置设置为“调试”或“发布”,然后再尝试更改启动项目。 然后将生成配置设置回 AppStore

“无效”图标

Invalid Icon - The watch application '...watchkitextension.appex/WatchApp.app'
contains an icon file '...watchkitextension.appex/WatchApp.app/AppIcon27.5x27.5@2x.png'
with an alpha channel. Icons should not have an alpha channel.

按照说明从图标中删除 alpha 通道

CFBundleVersion 不匹配

CFBundleVersion Mismatch. The CFBundleVersion value '1' of watch application
'...watchkitextension.appex/WatchApp.app' does not match the CFBundleVersion
value '1.0' of its containing iOS application `YouriOS.app`.

解决方案中的所有项目(iOS 应用、监视扩展和监视应用)都应使用相同的版本号。 编辑每个 Info.plist 文件,使版本号完全匹配。

缺少图标

Missing Icons. No icons found for watch application '...watchkitextension.appex/WatchApp.app'.
Please make sure that its Info.plist file includes entries for CFBundleIconFiles.

按照使用图标中的说明将所有所需图像添加到 Watch App 项目。

缺少图标

Missing Icon. The watch application '...watchkitextension.appex/WatchApp.app'
is missing icon with name pattern '*44x44@2x.png' (Home Screen 42mm).

确保拥有最新版本的 Visual Studio for Mac,并且 AppIcon.appiconset 包含一组完整的图像。 如果仍然看到此错误,请查看Contents.json源以确认它包含所有所需图像的条目。 或者,确保使用最新版本的 Xamarin 后,请删除并重新创建 AppIcon.appiconset

重要

Visual Studio for Mac 监视图标支持中有一个已知 bug:它需要29x29@3x图像的 88x88 像素图像(应为 87x87 像素)。

无法在 Visual Studio for Mac 中修复此问题 - 在 Xcode 中编辑图像资产或手动编辑 Contents.json 文件。

WatchKit 支持无效

Invalid WatchKit Support - The bundle contains an invalid implementation of WatchKit.
The app may have been built or signed with non-compliant or pre-release tools.

此消息可能在验证和提交期间出现,或在明显成功上传后从 iTunes 连接自动发送的电子邮件中。

重要

必须在 Visual Studio for Mac 中存档应用,然后切换到 Xcode 6.2+ 以验证并上传到 iTunes 连接。

使用稳定 Xamarin 通道和 Xcode 6.2+。

预配配置文件无效

Invalid Provisioning Profile. The provisioning profile included in the bundle
...iOSWatchApp.watchkitapp [iOSWatchApp.app/PlugIns/...iOSWatchApp.watchkitextension.appex/WatchApp.app]
is invalid. [Missing code-signing certificate.]

必须为监视应用解决方案中的所有三个项目提供分发预配配置文件:iOS 应用、监视扩展和监视应用 - 显式(三个配置文件)或通过单个野生配置文件卡配置文件。 检查 iOS 开发人员中心中是否存在预配配置文件,以及是否已下载配置文件并将其添加到 Mac。

代码签名权利无效

ITMS-90046: Invalid Code Signing Entitlements. Your application bundle's signature contains
code signing entitlements that are not supported on iOS. Specifically, value
'...watchkitextension' for key 'application-identifier' in '...watchkitextension'
is not supported. The value should be a string startign with your TEAMID, followed
by a dot '.' followed by the bundle identifier.

确保在 Apple 开发人员中心 上正确设置预配配置文件,并下载并安装它们。 此外,检查它们在每个项目的 Visual Studio for Mac 属性窗口中设置。

无效的体系结构

Invalid architecture: Apps that include an app extension
and framework must support arm64.

只能添加 Watch Apps Unified API (64 位) Xamarin.iOS 应用。 右键单击 iOS 应用项目,然后转到“>选项生成 iOS 生成>>高级”选项卡,确保 AppStore-i电话 配置支持的体系结构包括 ARM64(例如。 ARMv7 + ARM64)。

此捆绑包无效。

ITMS-90068: This bundle is invalid. The value provided for the key
MinimumOSVersion '8.3' is not acceptable.

父 iOS 应用程序必须将 MinimumOSVersion 设置为“8.2”或更早版本。

非公共 API 用法

Your app contains non-public API usage.
Please review the errors, and resubmit your application.

确保使用的是最新版本的 Xcode 和 Xamarin 工具。 代码不应访问任何非公共 API。

生成错误 MT5309

Error MT5309: Native linking error: clang: error: no such file or directory:

此错误可能是从 Xcode.app 重命名 Xcode 安装的结果。 例如,如果将安装重命名为 XCode 6.2.app,则会发生此错误。