UrbanAirship iOS SDK 错误 Xcode 7 归档时:libUAirship-6.2.0.a (UAWalletAction.o)' 不包含位码

UrbanAirship iOS SDK error in Xcode 7 when archiving: libUAirship-6.2.0.a (UAWalletAction.o)' does not contain bitcode

我在 Swift 中有一个 iOS 应用程序,使用 CocoaPods 使用 UrbanAirship iOS SDK 通过 Pods 如下:

pod 'UrbanAirship-iOS-SDK'

我们可以验证 Podfile.lock 文件中安装的版本:

- UrbanAirship-iOS-SDK (6.2.0):
  - UrbanAirship-iOS-SDK/Core (= 6.2.0)
- UrbanAirship-iOS-SDK/Core (6.2.0)

应用程序在 Xcode 6.4 上正确构建、运行和存档。此外,它还可以在 Xcode 7 beta 6 上正常构建和运行。但是,在 Xcode 7 中存档时,出现以下错误:

ld: '.../Pods/UrbanAirship-iOS-SDK/Airship/libUAirship-6.2.0.a(UAWalletAction.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture armv7

clang: error: linker command failed with exit code 1 (use -v to see invocation)

我已通过在项目和目标级别将 ENABLE_BITCODE 设置为 NO 将项目构建设置更新为 禁用 位码,如 所示,但错误仍然存​​在。

如有任何帮助,我们将不胜感激。感谢您的宝贵时间。

要启用 bitcode,您必须使用 Xcode7 构建库。Xcode7 GM 今天发布,因此我们现在可以使用 bitcode 发布 UA SDK 的更新启用。在更新之前,您可以按照 https://github.com/urbanairship/ios-library.

从源代码构建 SDK

更新: 我们发布了 6.2.2 的 2 个版本,一个有 bitcode,一个没有。 https://bintray.com/urbanairship/iOS/urbanairship-sdk/6.2.2/view

昨天我更新到最新的XCode7(预发布)并且无法存档我正在处理的项目:( ...在我自己努力构建 UA SDK 和其他库之后,我只是将 Enable Bitcode 设置为 NO 并且一切都像在 XCode6 中一样工作!:)

更新:

除了项目和项目中的目标,Bitcode 也应该被禁用(通过设置 Enable BitcodeNo)受影响的 CocoaPod 框架目标(在本例中为 UrbanAirship-iOS-SDK)。

如果您的应用不是为 Watch OS 构建的,您可以安全地将 Enabled Bitcode 关闭为 NO。

我还建议使用 Xcode 6 提交构建,因为大多数库至少在官方 Xcode 7 发布之前不会添加对位码的支持。

Xcode6 上不能 运行 支持位码的库,因此延迟采用。