【问题标题】:App Store Team error saying "your app contains bitcode" after application submission提交应用程序后,App Store Team 错误提示“您的应用程序包含位码”
【发布时间】:2015-07-20 22:23:55
【问题描述】:

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

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

我收到一封来自 App Store 团队的电子邮件,其中提到了这一点

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

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

【问题讨论】:

  • 我很好奇这个解决方案。我认为应用程序应该包含位码
  • 您使用xcode 7 beta 3 将应用程序上传到应用程序商店这一事实是您的问题。您无法使用 xcode 的 beta 版本上传应用
  • 所以你没有上传成功吧? Xcode 7 是测试版。它在 Xcode 7 发布之前不被接受。
  • @Cyril Ivar Garcia:你真的使用测试版成功上传了吗?我看到接受的答案暗示你这样做了,所以有几个(可能)错误的帖子漂浮在周围......

标签: ios xcode bitcode


【解决方案1】:

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

至于“bitcode”,请访问 developer.apple.com 并查看有关“应用瘦身”的 WWDC 视频,以及下一版本的相关文档。

要提交应用程序进行 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 built with Xcode 7 as long as you are not targeting iOS 9?

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

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

此外,Apple 提交到 App Store 的技术文档说你应该使用最新的 Xcode 和 SDK——他们没有提到 beta 版和发布版,但是“最新”的链接指向最新的 release 版本的 Xcode,可通过 Mac App Store 获得。见Technical Q&A QA1806: What version of Xcode and SDK should I be using when building for the App Store?

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

【讨论】:

    【解决方案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 的信息。

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

    【讨论】:

    • 我在这里遇到了完全相同的问题。我已经为我的主项目、Pods 和我正在使用的框架关闭了 bitcode,但仍然遇到与 maaz 相同的错误。
    【解决方案3】:

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

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

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

    【讨论】:

    • 好的,我知道您可以提交使用 beta Xcode 进行 beta 测试,但不能发布?感谢您的澄清!
    猜你喜欢
    • 1970-01-01
    • 2014-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-25
    • 2016-03-24
    相关资源
    最近更新 更多