'无效的bitcode版本(制作人:'902.0.39.2_0'读者:'900.0.37_0')'

Him*_*iya 12 architecture ios bitcode swift4 xcode9

我正在使用Xcode 9.0.

我的pod文件:

pod 'Alamofire', '~> 4.3'
pod 'SwiftyJSON'
pod 'AlamofireSwiftyJSON'
pod 'KSToastView', '0.5.7'
pod 'SDWebImage', '~> 4.0'
pod 'NVActivityIndicatorView'   
pod 'Firebase/Core'
pod 'Firebase/Messaging'
pod 'CarbonKit'
pod 'SBPickerSelector'
pod 'SwiftyStoreKit'    
pod 'Fabric'
pod 'Crashlytics'
pod 'SAMKeychain', '1.5.2'
Run Code Online (Sandbox Code Playgroud)

我的错误日志:

ld:无法在bitcode包中重新解析目标文件:'无效的bitcode版本(生产者:'902.0.39.2_0'Reader:'900.0.37_0')',使用libLTO版本'LLVM版本9.0.0,(clang-900.0.37) )'for architecture arm64 clang:error:链接器命令失败,退出代码为1(使用-v查看调用)

我读了很多关于这个问题的文章但是我无法解决它.我提到了这一点,是的,这注意到我想用我的项目构建存档

configuration = Debug
ENABLE_BITCODE = YES
configuration = Release
ENABLE_BITCODE = YES
completeSettings = some
ENABLE_BITCODE = YES
Run Code Online (Sandbox Code Playgroud)

有什么建议?

小智 23

解决此问题的步骤:

  • 构建设置
  • 在"构建选项"类别中搜索"启用Bitcode"选项.
  • 选择否.

  • 我相信这不是真正的解决方案,而是解决方法。您刚刚在整个项目中禁用了位码。 (7认同)
  • Apple 现在建议打开位码。禁用它并不能真正解决这个问题。 (2认同)

小智 15

如果您并排安装了两个不同的 Xcode 版本,然后使用指向错误命令行工具的一个版本进行构建,也会发生这种情况。在(更新的)Xcode 10.2 旁边安装 Xcode 10.1 后,我遇到了这个问题。我的 Xcode 10.1 指向 Xcode 10.2 命令行工具,因此链接失败,位码版本无效,与您的情况相同。修复是:

  • 在 Xcode Preferences -> Locations -> Command Line Tools 中更改命令行工具: XCode 偏好 -> 位置

  • 清理构建文件夹并点击存档。

以上也适用于其他 Xcode 版本。

  • 将 Bitcode 设置为 No 不允许将 Dym 文件上传到 tesflight,这不是正确的选项。我相信这是正确的答案。 (4认同)

Mou*_*rad 8

这是因为在使用较新版本的Xcode构建的项目(框架)中具有某些依赖项。

您必须更新Xcode版本,或在项目中禁用位代码(“项目”>“构建设置”>“启用位代码= NO”)


Ser*_*iiK 5

正如 Rivera 所说,您使用的一些库需要 Xcode 10(可能是 Firebase)。因此,解决方法是降级库的版本。对我来说,这些版本与 Xcode 9 和启用位码的选项配合良好:

  pod 'Firebase/Core', '~> 4.13.0'
  pod 'Fabric', '~> 1.7.0'
  pod 'Crashlytics', '~> 3.9.0'
Run Code Online (Sandbox Code Playgroud)

也许您还应该调查使用哪个旧版本的Firebase/Messaging 。

顺便说一句,这就是开发人员应避免在未指定特定版本的情况下使用 pod 的原因之一(这将导致始终下载最新版本的 pod)。它还可能导致版本与使用 Pod 功能的代码不兼容。