'无效的位码版本(生产者:'902.0.39.2_0'Reader:'900.0.37_0')'
'Invalid bitcode version (Producer: '902.0.39.2_0' Reader: '900.0.37_0')'
我正在使用 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'
我的错误日志:
ld: could not reparse object file in bitcode bundle: 'Invalid bitcode
version (Producer: '902.0.39.2_0' Reader: '900.0.37_0')', using libLTO
version 'LLVM version 9.0.0, (clang-900.0.37)' for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
我看了很多关于这个问题的文章,但我无法解决它。我提到了 this,是的,这表明我想使用
构建我的项目存档
configuration = Debug
ENABLE_BITCODE = YES
configuration = Release
ENABLE_BITCODE = YES
completeSettings = some
ENABLE_BITCODE = YES
有什么建议吗?
这是因为您的项目(框架)中有一些依赖项是使用较新版本的 Xcode 构建的。
您必须更新您的 Xcode 版本,或者在您的项目中禁用位代码(项目 > 构建设置 > 启用位代码 = 否)
您使用的某些库预计 Xcode 10(可能是 Firebase)。使用 Xcode 10.
解决此问题的步骤:
- 构建设置
- 在构建选项类别中搜索启用位码选项。
- Select没有
正如 Rivera 所说,您使用的一些库期望 Xcode 10(可能是 Firebase)。因此,解决方法是降级库的版本。对我来说,这些版本适用于 Xcode 9 和启用位码的选项:
pod 'Firebase/Core', '~> 4.13.0'
pod 'Fabric', '~> 1.7.0'
pod 'Crashlytics', '~> 3.9.0'
也许您还应该调查使用哪个旧版本的 Firebase/Messaging。
顺便说一句,这就是开发人员应避免在未指定特定版本的情况下使用 pods 的原因之一(这将导致始终下载最新版本的 pods)。它还可能导致版本与使用 pod 功能的代码不兼容。
如果您并排安装了两个不同的 Xcode 版本,然后使用指向错误命令行工具的版本进行构建,也会发生这种情况。
我在 Xcode 10.2 旁边(已更新)安装 Xcode 10.1 后遇到了这个问题。我的 Xcode 10.1 指向 Xcode 10.2 命令行工具,因此链接失败,比特码版本无效,与您的情况相同。
修复是:
在 Xcode 首选项 -> 位置 -> 命令行工具中更改命令行工具:
清理构建文件夹并点击存档。
以上对其他Xcode版本也有效。
编译pod sdk的Xcode版本很有可能比你用的版本高
下一个可能的原因是构建设置中的位码。检查它是否在您的应用目标和框架目标上启用。如果您添加了 vis cocoapods,请单击 pods 项目,在目标部分下,向下滚动到出现此错误的 sdk,打开构建设置并检查位码状态。
In my case, the Main project had bitcode disabled and the sdk inside the pods project had it enabled. Disabled it and everything worked fine.
对于仍然遇到这种情况的任何人,您可能 packages/pods 使用比您安装的更高版本的 Xcode 构建。我已经通过将 XCode 升级到最新版本解决了这个问题。
我认为关闭 Bitcode 选项不是正确的做法。这是一个症状,而不是解决方案。
为我工作设置选项
ENABLE_BITCODE=没有
将成功 运行 构建,但这不是一个好的解决方法。
(您必须在 xcode 中转到项目>构建设置,然后 select “全部”过滤器,然后按 ENABLE_BITCODE 键搜索并更改它)
我正在使用 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'
我的错误日志:
ld: could not reparse object file in bitcode bundle: 'Invalid bitcode version (Producer: '902.0.39.2_0' Reader: '900.0.37_0')', using libLTO version 'LLVM version 9.0.0, (clang-900.0.37)' for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
我看了很多关于这个问题的文章,但我无法解决它。我提到了 this,是的,这表明我想使用
构建我的项目存档configuration = Debug
ENABLE_BITCODE = YES
configuration = Release
ENABLE_BITCODE = YES
completeSettings = some
ENABLE_BITCODE = YES
有什么建议吗?
这是因为您的项目(框架)中有一些依赖项是使用较新版本的 Xcode 构建的。
您必须更新您的 Xcode 版本,或者在您的项目中禁用位代码(项目 > 构建设置 > 启用位代码 = 否)
您使用的某些库预计 Xcode 10(可能是 Firebase)。使用 Xcode 10.
解决此问题的步骤:
- 构建设置
- 在构建选项类别中搜索启用位码选项。
- Select没有
正如 Rivera 所说,您使用的一些库期望 Xcode 10(可能是 Firebase)。因此,解决方法是降级库的版本。对我来说,这些版本适用于 Xcode 9 和启用位码的选项:
pod 'Firebase/Core', '~> 4.13.0'
pod 'Fabric', '~> 1.7.0'
pod 'Crashlytics', '~> 3.9.0'
也许您还应该调查使用哪个旧版本的 Firebase/Messaging。
顺便说一句,这就是开发人员应避免在未指定特定版本的情况下使用 pods 的原因之一(这将导致始终下载最新版本的 pods)。它还可能导致版本与使用 pod 功能的代码不兼容。
如果您并排安装了两个不同的 Xcode 版本,然后使用指向错误命令行工具的版本进行构建,也会发生这种情况。 我在 Xcode 10.2 旁边(已更新)安装 Xcode 10.1 后遇到了这个问题。我的 Xcode 10.1 指向 Xcode 10.2 命令行工具,因此链接失败,比特码版本无效,与您的情况相同。 修复是:
在 Xcode 首选项 -> 位置 -> 命令行工具中更改命令行工具:
清理构建文件夹并点击存档。
以上对其他Xcode版本也有效。
编译pod sdk的Xcode版本很有可能比你用的版本高
下一个可能的原因是构建设置中的位码。检查它是否在您的应用目标和框架目标上启用。如果您添加了 vis cocoapods,请单击 pods 项目,在目标部分下,向下滚动到出现此错误的 sdk,打开构建设置并检查位码状态。
In my case, the Main project had bitcode disabled and the sdk inside the pods project had it enabled. Disabled it and everything worked fine.
对于仍然遇到这种情况的任何人,您可能 packages/pods 使用比您安装的更高版本的 Xcode 构建。我已经通过将 XCode 升级到最新版本解决了这个问题。
我认为关闭 Bitcode 选项不是正确的做法。这是一个症状,而不是解决方案。
为我工作设置选项
ENABLE_BITCODE=没有
将成功 运行 构建,但这不是一个好的解决方法。
(您必须在 xcode 中转到项目>构建设置,然后 select “全部”过滤器,然后按 ENABLE_BITCODE 键搜索并更改它)