我有一个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
示例应用程序在Simulator上运行良好,但是在尝试在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
答案 0 :(得分:0)
在错误消息中描述了传递给-bitcode_bundle
的{{1}}标志(“ Xcode设置ENABLE_BITCODE = YES”),但是没有ld
标志,这可能造成混淆而且很难调试。
如果您查看此错误之前的行,您可能会看到两个重要的地方:
这两行是您问题的实质。您的捆绑包以前没有二进制文件(只有PNG,XIB和其他资源),现在有了二进制文件。 Xstrong 创建的一个。由于此二进制文件是作为资源包目标的一部分创建的,因此使用-bundle
标志将其编译为CFBundleExecutable,该标志与-bundle
不兼容。但是,除了禁用位码之外,您还应该首先避免生成此二进制文件。
此二进制文件是由Apple Generic Versioning创建的。要摆脱它,请转到构建设置选项卡(在资源包目标上),单击“所有”按钮以查看所有设置,然后搜索“版本系统”。将其从“ Apple Generic”更改为“ None”。 资源包不正确支持版本控制。