无法构建手动引用计数CocoaPod

时间:2014-11-11 19:11:48

标签: ios objective-c xcode automatic-ref-counting cocoapods

我有一个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有助于解决问题。

1 个答案:

答案 0 :(得分:0)

您需要使用s.requires_arc = false

记录在案here。最近的默认值已从false更改为true。如果您运行pod spec lint,也会出现此错误。