更新 CocoaPods 后找不到 headers
Posted
技术标签:
【中文标题】更新 CocoaPods 后找不到 headers【英文标题】:Headers are not found after updating CocoaPods 【发布时间】:2014-10-12 03:24:22 【问题描述】:我今天更新了 CocoaPods (sudo gem install cocoapods
)。执行pod install
后,项目将不再编译。项目似乎不再找到来自 pod 的标头。
最近的可可豆荚版本有什么变化吗?
以下是我的 pod 文件:
source 'https://github.com/artsy/Specs.git'
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '7.0'
inhibit_all_warnings!
pod 'CocoaLumberjack'
pod 'RestKit', '~> 0.20.0'
pod 'RestKit/Testing'
pod 'NLTHTTPStubServer'
pod 'Appsee'
pod 'google-plus-ios-sdk', '1.7.0'
【问题讨论】:
假设您使用的是 0.34.2 版本。在pod install
之后收到什么错误消息?
起初我收到以下错误:[!] 隐式源的使用已被弃用。要继续使用当前机器上的所有源,请将以下内容添加到 Podfile 的顶部:source 'github.com/CocoaPods/Specs.git'。
请看我更新的答案。希望它对你有用:)
【参考方案1】:
修复很简单,错误告诉我们该怎么做。将此添加到 Podfile 的顶部:
source 'https://github.com/artsy/Specs.git'
source 'https://github.com/CocoaPods/Specs.git'
这里有更多细节的 Github 问题 - https://github.com/CocoaPods/CocoaPods/issues/2515
更新
确保在 Xcode 项目目录的根目录中创建 Podfile。这是您的 Podfile 的外观 -
source 'https://github.com/artsy/Specs.git'
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '7.0'
inhibit_all_warnings!
# Pods
pod 'RestKit', :head
pod 'RestKit/Testing', :head
pod 'CocoaLumberjack', :head
pod 'NLTHTTPStubServer', :head
pod 'Appsee', '~> 2.1'
pod 'google-plus-ios-sdk', '~> 1.7.0'
在您的终端中 -
更新 RubyGems -sudo gem update
更新可可豆荚 - sudo gem install cocoapods
在你的项目目录中 -
删除 pod -rm -rf Pods/
安装 pod - pod install
【讨论】:
它没有解决问题 - 仍然找不到标题。例如 - #import "RKRelationshipMapping.h"。 @ErikSapir 我能问一下你正在使用哪些豆荚吗? 我将我的 podfile 内容添加到主消息中 @ErikSapir 嗯。上面的评论非常混乱。我更新了答案,猜测您在使用 RestKit 时遇到问题。你能试试吗?请分享确切的错误消息。 我的问题不在于restkit。如果我从 podfile 中删除 reskit,我猜想包含其他 pod 库的错误【参考方案2】:我和你一样,最后决定回滚我安装的CocoaPods
版本(解决了我的问题)
幸运的是,我的Podfile.lock
文件处于版本控制之下,所以我打开了该文件以查看我使用的最新版本的 Cocoapods。我的Podfile.lock
的最后一行是:
COCOAPODS: 0.33.1
这就是我如何解决我的问题
sudo gem uninstall cocoapods
sudo gem install cocoapods -v 0.33.1
rm -rf Pods
pod install
【讨论】:
PS:关于将Pods
目录置于版本控制之下的争论一直存在。这是一个很好的例子,说明了为什么应该这样做。以上是关于更新 CocoaPods 后找不到 headers的主要内容,如果未能解决你的问题,请参考以下文章
将 CocoaPods 更新到 0.36.x 及以上版本后如何引用 Bridging-Header.h 中的头文件?