0

当我在升级 watchOS 后尝试提交构建时,我从 Apple 收到了这封邮件。Bitcode之前没有在整个应用程序中启用。

尊敬的开发人员, 我们发现您最近交付的“event****”存在一个或多个问题。要处理您的交付,必须更正以下问题: 无效的可执行文件 - 可执行文件 'ProjectName.app/Watch/ProjectName WatchKit App.app/PlugIns/ProjectName WatchKit Extension.appex/ProjectName WatchKit Extension' 不包含bitcode. 尽管您不需要解决以下问题,但我们希望您了解它们: WatchKit 1.0 - 您的先前版本使用了 Apple Watch 的扩展,但您当前的版本没有。尚未将 Apple Watch 更新至 watchOS 2 或更高版本的用户可能无法访问其 Apple Watch 扩展程序。完成所需的更正后,您可以重新交付更正后的二进制文件。

我已经用谷歌搜索并关注了这个对我来说似乎有帮助的链接,但它没有。

Bitcode WatchOS3 - 如何生成

我有一个疑问,在我的 iOS 目标项目中,bitcode设置位于构建设置下的构建选项中,但对于 watchOS 目标,它位于构建设置下的用户定义设置中。

当我尝试将其值设置为 yes 并继续存档构建时,在导出 IPA 文件时它会显示目标的内容,其中始终显示bitcode不包括在内。为什么即使设置了 yes 值也会发生这种情况,我完全糊涂了。

我想仅针对 watchOS 目标将 bitcode 值设置为 yes。

谢谢

4

1 回答 1

3

因为我已经通过清除一个小混乱来解决这个问题,这可能会给像我这样的任何人带来很大的压力。Apple 表示:对于 iOS 应用程序,bitcode 是默认设置,但可选。对于 watchOS 和 tvOS 应用程序,需要位码。如果您提供位码,则应用程序包中的所有应用程序和框架(项目中的所有目标)都需要包含位码 因此,如果您的应用程序没有针对 WatchOS(在我的情况下为 watchOS4 版本)的目标,则可以根据您的要求启用或禁用位码设置。但无论如何,如果您的应用程序中有 watchOS 目标,那么您别无选择,只能为整个应用程序目标启用位码,然后只有苹果才能接受您为 Appstore 构建的版本。

如果您启用 watchOS 目标的位码并禁用其他目标的位码设置,则构建可以存档,但构建内的位码设置将始终显示“不包含”并且苹果拒绝它。

如果您使用旧的第三方库,则在启用位码后,您必须将每个库更新到支持位码的版本,它也包括 pod。所以要小心它,因为如果你的应用程序太旧而且太庞大,这不是一件容易的事。

于 2017-12-28T13:56:12.653 回答