我有一个 pod 项目,其中包含一个演示 pod 用法的示例。在示例和 Pod 目标上,位码启用设置均设置为 yes。以下是示例的Podfile:
use_frameworks!
platform :ios, '10.0'
target 'MyPod_Example' do
pod 'MyPod', :path => '../'
target 'MyPod_Tests' do
inherit! :search_paths
end
end
Run Code Online (Sandbox Code Playgroud)
该示例应用程序在模拟器上运行良好,但是当尝试在 iPhone 6S 上运行它时,我收到以下构建错误:
ld:-bundle 和 -bitcode_bundle(Xcode 设置 ENABLE_BITCODE=YES)不能一起使用 clang:错误:链接器命令失败,退出代码 1(使用 -v 查看调用)。
我该如何解决?我的另一个项目有相同的 pod,但从其存储库下载 pod 在 iPhone 上运行良好,并且启用了位码。下面显示了可以运行的应用程序的 Podfile 结构:
source '<my pod spec repo>'
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'
target 'MyPodTest' do
use_frameworks!
# Pods for MyPodTest
pod 'MyPod'
target 'MyPodTestTests' do
inherit! :search_paths
# Pods for testing
end
target 'MyPodTestUITests' do
inherit! :search_paths
# Pods for testing
end
end
Run Code Online (Sandbox Code Playgroud)
错误消息中描述了-bitcode_bundle传递给的标志( “Xcode 设置 ENABLE_BITCODE=YES”),但该标志并未描述,这可能会使此过程变得混乱且难以调试。ld-bundle
如果您查看此错误之前的行,您可能会看到两个重要的错误:
这两行是你问题的真正核心。您的包以前没有二进制文件(只有 PNG、XIB 和其他资源),现在有一个二进制文件。一个由 Xcode创建的。由于此二进制文件是作为资源包目标的一部分创建的,因此它使用该-bundle标志编译为 CFBundleExecutable,该标志与ENABLE_BITCODE. 不过,您应该首先阻止生成此二进制文件,而不是禁用位码。
该二进制文件由Apple 通用版本控制创建。要摆脱它,请转到构建设置选项卡(在资源包目标上),单击“全部”按钮以查看所有设置,然后搜索“版本控制系统”。将其从“Apple Generic”更改为“None”。资源包不正确支持版本控制。
| 归档时间: |
|
| 查看次数: |
576 次 |
| 最近记录: |