7

我以前从未听说过这个术语bitcode,我什至不知道从哪里开始寻找如何解决这个问题。

我正在使用Xcode 7 beta 3并且我已经成功上传了我的应用程序 3 次,但是每次我上传它时,它都会将状态更改为 invalid binary

我收到了 App Store 团队发来的一封电子邮件,里面说

“无效的可执行文件 - 可执行文件 'ESUHSD.app/ESUHSD' 包含位码。”

我不知道您需要了解有关该应用程序的哪些信息,所以我希望任何帮助将不胜感激!

4

3 回答 3

4

首先,我认为您不能提交任何使用 Xcode 测试版构建的发布应用程序(即使您针对现有的 iOS / WatchKit SDK 组合)。

至于“bitcode”,请访问 developer.apple.com 并查看 WWDC 关于“app thinning”的视频,以及下一个版本的相关文档。

对于提交应用程序进行 Beta 测试,这是另一回事。一般来说,这是可能的,但可能会有一些怪癖;@Jan 的回答涵盖了与位码有关的 Xcode 7 beta 的细节。

有关不向 AppStore 提交带有 beta Xcode 版本的发布应用程序的参考资料,请参阅以下帖子(如果您提供来自 Apple 的权威文档,添加链接会很棒):

在 Apple 开发者论坛上,公认的答案是您永远不能使用 beta Xcode 提交,并且很多人表示您从未被允许使用 beta 软件提交。有一个部分提到了有关位码和提交的解决方法,但有人建议这是在 Xcode 7 正式发布之后: Apple Forum: Can you submit to the App Store an app build with Xcode 7 as long as you are not瞄准iOS 9?

来自 StackOverflow:接受的答案同意禁止使用 beta Xcode 提交应用程序:Workaround to submit app to app store with Xcode 7

来自 StackOverflow:“App 需要使用 Xcode 的发行版编译”是公认的答案:Submitting iOS app using beta version of xcode?

此外,关于提交到 App Store 的 Apple 技术文档说你应该使用最新的 Xcode 和 SDK——他们没有提到 beta 版和发布版,但是“最新”的链接指向 Xcode 的最新发布版本,可通过 Mac App Store 获得。请参阅技术问答 QA1806:为 App Store 构建时我应该使用哪个版本的 Xcode 和 SDK?

注意:根据 OP 在 beta 测试评论中声明的意图进行编辑,而不是发布到先前 SDK 的构建。

于 2015-07-20T22:35:43.010 回答
2

我试过禁用位码和所有其他选项,但它没有用。即使在更新之前我能够从 Xcode 7 b3 和 swift 2 提交测试版本,我仍然不断收到无效的可执行文件。之后我使用了一些可可豆荚来优化应用程序,现在当我想测试它时,它会抛出这个错误:

Invalid Swift Support - The bundle contains an invalid implementation of Swift. The app may have been built or signed with non-compliant or pre-release tools. Visit developer.apple.com for more information.

Invalid Executable - The executable 'myApp.app/Frameworks/libswiftSecurity.dylib' contains bitcode.

Invalid Executable - The executable 'myApp.app/Frameworks/libswiftCoreGraphics.dylib' contains bitcode.

Invalid Executable - The executable 'myApp.app/Frameworks/libswiftObjectiveC.dylib' contains bitcode.

Invalid Executable - The executable 'myApp.app/Frameworks/libswiftUIKit.dylib' contains bitcode.

Invalid Executable - The executable 'myApp.app/Frameworks/libswiftCoreImage.dylib' contains bitcode.

Invalid Executable - The executable 'myApp.app/Frameworks/libswiftDarwin.dylib' contains bitcode.

Invalid Executable - The executable 'myApp.app/Frameworks/libswiftDispatch.dylib' contains bitcode.

Invalid Executable - The executable 'YTDemo.app/Frameworks/libswiftFoundation.dylib' contains bitcode.

Invalid Executable - The executable 'myApp.app/Frameworks/libswiftCore.dylib' contains bitcode.

尽管您不需要解决以下问题,但我们想让您了解它们:

缺少推送通知权利- 您的应用似乎包含用于注册 Apple 推送通知服务的 API,但应用签名的权利不包括“aps-environment”权利。如果您的应用程序使用 Apple 推送通知服务,请确保您的应用程序 ID 在配置门户中启用推送通知,并在使用包含“aps-environment”权利的分发配置文件签署您的应用程序后重新提交。有关详细信息,请参阅本地和推送通知编程指南中的“供应和开发”。如果您的应用程序不使用 Apple 推送通知服务,则无需执行任何操作。您可以从以后的提交中删除 API 以停止此警告。如果您使用第三方框架,您可能需要联系开发人员以获取有关删除 API 的信息。

完成所需的更正后,您可以重新交付更正后的二进制文件。

于 2015-08-02T22:40:35.720 回答
1

如果需要,您仍然可以提交到 AppStore。至少我必须进行 Beta 测试。您只需要在 Build Settings 中禁用 Bitcode:

在此处输入图像描述

这将消除警告,直到 AppStore 为 Bitcode 做好准备。

但请记住,如果您使用 Xcode 7 提交,则不能邀请外部用户测试应用程序。只有内部用户可以测试它。

于 2015-07-23T15:13:09.757 回答