2

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

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)' 不包含位码。您必须在启用位码的情况下重建它(Xcode 设置 ENABLE_BITCODE),从供应商处获取更新的库,或禁用此目标的位码。对于架构 armv7

clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

我已更新项目构建设置以通过在项目和目标级别设置为来禁用位码,如this SO answer所示错误仍然存​​在。ENABLE_BITCODENO

在此处输入图像描述

任何帮助,将不胜感激。谢谢你的时间。

4

3 回答 3

8

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

更新:

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

在此处输入图像描述

于 2015-09-11T15:04:51.187 回答
1

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

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

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

于 2015-09-15T10:07:43.543 回答
0

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

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

于 2015-09-09T21:35:05.273 回答