我有一个iOS CocoaPod,它作为一个容器有几年的历史了,并且比可重复使用的组件早了几年。以前使用旧版Xcode构建。它是用“手动参考计数”开发的,并且仍然是我现在正试图将它导入一个“新”项目(实际上是从一个旧项目和手动引用计数重建),但我无法建立它。
正如我所说,封闭项目是手动引用计数,并且在没有安装pod的情况下以这种方式编译。 “自动引用计数”在“构建设置”中设置为“否”。
但是,即使pods项目中存在完全相同的Build Settings“No”值,它总是生成一个带有-fobjc-arc
的编译脚本,并调用{{1} }和retain
被标记为错误。 (例如,release
。)
Xcode的版本是6.0.1。
error: 'release' is unavailable: not available in automatic reference counting mode
的版本是0.34.4(昨天安装完毕)。
有问题的pod的podspec:
pod
我尝试将Pod::Spec.new do |s|
s.name = "libXXX"
s.version = "1.0"
s.summary = "Exchange library for XYZ."
s.description = "Static library pod for the XXX framework."
s.homepage = "http://example.com"
s.license = { :type => 'MIT', :text => 'Copyright 2012 XYZ' }
s.author = { "Bill Nye" => "bnye@example.com" }
s.source = { :git => 'https://code.example.com/ios/XXX.git', :tag => '1.0' }
s.platform = :ios
s.source_files = 'StaticLib/Headers/*.h'
s.preserve_paths = 'StaticLib/libXXX.a'
s.library = 'XChangeA'
s.xcconfig = { 'LIBRARY_SEARCH_PATHS' => '$(PODS_ROOT)/libXXX/StaticLib' }
s.dependency 'libSignatureToken'
end
添加到pod规范(并执行s.requires_arc = false
),但没有任何改变。我也试过了pod update
,没有成功。
那么,我如何说服Xcode用手动引用计数编译pod?
s.compiler_flags = '-fno-objc-arc'
期间显然“不相关”的问题导致它在没有配置编译模式信息的情况下无声地失败。反复运行pod update
有助于解决问题。
答案 0 :(得分:0)
您需要使用s.requires_arc = false
记录在案here。最近的默认值已从false
更改为true
。如果您运行pod spec lint
,也会出现此错误。