【问题标题】:error: Invalid bitcode version (Producer: '800.0.35.0_0' Reader: '703.0.31_0')错误:无效的位码版本(生产者:'800.0.35.0_0' 读者:'703.0.31_0')
【发布时间】:2016-12-16 22:31:45
【问题描述】:

当我尝试在 Xcode 7.3.1 上存档我的应​​用程序时,我收到以下错误:

错误:无效的位码版本(生产者:'800.0.35.0_0' 读者: '703.0.31_0')clang:错误:链接器命令失败,退出代码为 1 (使用 -v 查看调用)

我昨天成功存档了我的应用,有人可以帮我吗?

【问题讨论】:

  • 看起来就像您使用 XCode 8 beta 创建了您的应用程序,现在正在使用 XCode 7 进行归档。或者可能 XCode 在构建过程中混合了两个版本(使用版本 8 编译并与版本 7 链接)。
  • 没有。我使用 Xcode 7.3.1 创建了我的应用程序
  • 但是您已经安装了 XCode 8 测试版,对吧?
  • 我还没有使用 Xcode 7.3.1,还没有安装 Xcode 8 Beta 版
  • 那么您主要使用的是已经用 XCode 8 编译的第三方库。如果链接器输出了一个关于什么文件是问题原因的更具体的消息。这可能有助于诊断有问题的库。然后恢复到该库的早期版本。

标签: ios xcode ios9 xcode8


【解决方案1】:

错误基本上说:

静态链接器无法正确链接某个位码包,该包是 使用 Producer: '902.0.39.2' 制作,正在使用 Reader 读取: '900.0.37'。

您可以查看https://gist.github.com/yamaya/2924292 以识别相应编译器版本的 Xcode 版本。在当前情况下,阅读器(我们的 Xcode 版本)是 Xcode 9.0,而生产者(通常是第三方 SDK 的 Xcode 版本)是 Xcode 9.4。两者的不兼容是造成这个问题的根本原因。

您可以:

  • 按照其他答案中的讨论关闭位码,或
  • 将 SDK 回滚到之前运行良好的版本,或者
  • 更新您的代码库以使用较新的 Xcode 版本。

【讨论】:

    【解决方案2】:

    我之前遇到过这个错误... 您可以尝试以下对我有用的解决方案

    在 app 中搜索 bitcode 关键字 --> Build Settings 并将其更改为 NO 然后再次归档 -->

    现在应该可以正常使用了

    【讨论】:

    【解决方案3】:

    如果您使用的 lib 或 pod 意味着其中一个是由当前 Xcode 的更高版本构建的,您可以更新代码或返回到由当前版本构建 pod 的先前版本。 如果您运行 pod update 检查更新的 pod 如果您运行 pod install 检查 pod 的日期与 Xcode 的发布日期相比,这将引导您找到负责的 pod。

    我在使用 Xcode 8.2.1 和 Xcode 8.3.1 构建的 pod 构建时得到它

    【讨论】:

    • Fastfile 中的 xcode_select "/Applications/Xcode\ 83.app" 解决了这个问题。 (我安装了 3 个版本的 Xcode。)
    【解决方案4】:

    很好的解决方案,但禁用位码对某些人有用。

    编辑:- 它也对我有用。 但如果您的项目是**Bitcode Disable **,将来您的应用可能会出现问题或(Appstore 未优化构建)。

    位码是已编译程序的中间表示。您上传到 iTunes Connect 的包含位码的应用程序将在 App Store 上进行编译和链接。包含位码将允许 Apple 在未来重新优化您的应用二进制文件,而无需向商店提交新版本的应用。

    注意:对于 iOS 应用程序,位码是默认设置,但可选。如果你 提供bitcode,app bundle中的所有app和framework都需要 包括位码。 对于 watchOS 应用,需要位码

    这就是为什么要尝试以正确的方式找出错误解决方案。

    【讨论】:

      【解决方案5】:

      我也遇到了这个错误:无效的位码版本(生产者:'800.0.24.1_0' 读者:'703.0.31_0')我搜索了很多,但找不到合适的解决方案。我尝试了自己并解决了这个可能 在我的情况下,这个错误发生在我们通常做的拖放添加 FBSDK 之后。
      您可以按照以下步骤解决此问题:

      1. 删除构建阶段中的所有 pod 脚本
      2. 从项目中删除拖动的 FBSdks 文件。
      3. 退出 xcode 并删除 3 个东西“Pod 文件夹”、“Podfile.lock”和“Projectworkspace”
      4. 在podfile中搜索并添加FBSDK pod链接
      5. 使用终端再次安装 pod.... 现在打开 Xcode 存档您的项目构建。

      【讨论】:

      • 你救了我的朋友。
      【解决方案6】:

      我也遇到了同样的问题,正如@Nate 所建议的, 问题是因为我们的项目中使用 Cocoapods 集成了第三方 SDK。

      为了帮助我找出我在项目中拥有的 15 个 pod 中的哪一个负责,我做了以下操作:

      1. 创建一个新的 xcode 项目
      2. 将原始项目中的 Podfile 复制到新创建的项目目录中
      3. 安装 pod
      4. 移除一个或多个豆荚⋆
      5. 存档新项目,看看是否成功,如果没有,重复第 4 步直到可以存档

      ⋆(你也可以尝试二分查找,删除 Podfile 中的前半部分 pod,然后查看新项目是否归档)

      找出导致问题的库后,通过在 Podfile 中明确指定版本来继续降级库,直到项目成功存档。 然后您可以使用该版本的库来存档并上传到应用商店。

      【讨论】:

      • 在我的例子中,编译器已经显示 Flurry-iOS-SD 导致问题,只需一步降级即可解决问题。
      • 这个调试思路帮助我找到了根本原因。感谢您的建议!
      【解决方案7】:

      安装 Xcode 8: https://developer.apple.com/download/

      Xcode 8 GM 种子可用于向 App Store 提交应用程序。

      更多信息: 就我而言,我更新到了最新的 Facebook iOS SDK 4.15.1。由于该库已使用 Xcode 8 进行了更新,而我仍在使用 Xcode 7.3.1,因此导致了错误。

      https://developers.facebook.com/docs/ios/change-log-4.x

      针对 Xcode 8 GM 和 iOS 10 进行了更新。

      所以,请仔细检查第 3 方库。

      或者,如果您不介意禁用位码: 转到构建设置搜索位码并将“启用位码”更改为“否”。

      【讨论】:

      • 编辑了建议安装 Xcode 8 来解决问题的答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多