【发布时间】:2014-11-11 19:11:48
【问题描述】:
我有一个 iOS CocoaPod,它作为 pod 已有几年的历史,而作为可重用组件则比它早几年。以前使用旧版本的 Xcode 构建。它是用“手动引用计数”开发的,并且仍然是“手动引用计数”。我现在正尝试将其导入“新”项目(实际上是从旧项目和手动引用计数重建),但我无法构建它。
正如我所说,封闭项目是手动引用计数,并且可以在没有安装 pod 的情况下以这种方式编译。 “构建设置”中的“自动引用计数”设置为“否”。
然而,即使 pods 项目中存在完全相同的 Build Settings “No”值,它总是会生成带有 -fobjc-arc 的编译脚本,并调用 retain 和 @987654323 @ 被标记为错误。 (例如,error: 'release' is unavailable: not available in automatic reference counting mode。)
Xcode 的版本是 6.0.1。
pod 的版本是 0.34.4(昨天新安装的)。
相关 pod 的 podspec:
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
我尝试将 s.requires_arc = false 添加到 pod 规范(并执行 pod update),但没有任何改变。我也试过s.compiler_flags = '-fno-objc-arc',没有成功。
那么,如何说服 Xcode 使用手动引用计数来编译 pod?
已解决
显然,pod update 期间的“无关”问题导致它在未配置编译模式信息的情况下静默失败。反复运行pod update --verbose 有助于解决问题。
【问题讨论】:
标签: ios objective-c xcode automatic-ref-counting cocoapods