在Github上下载了一个三四年前的项目,Podfile是那种老式的,内容很简单:
platform :ios, '6.0'
pod 'xxxxxx'
在当前CocoaPods普遍使用1.0+版本时(最新的为1.4版本),上面的Podfile需要修改成这样的:
platform :ios, '9.0'
def pods
pod 'xxxx'
end
target 'yourtargetname' do
pods
end
执行pod install后生成xcworkspace项目文件,从这个项目文件打开项目,编译会报错“ld: library not found for -lPods”。
一般的方案是:
进入target的 Build Phases- Link binary Library,找到libPods.a,如果是红色的,删除,即可——记得我以前是用这个方案解决的
或者
Build Setting > Other Linker Flag: Try to change wherever $(TARGET_BUILD_DIR) to $(BUILT_PRODUCTS_DIR).
但是今天用了上面两个方法都解决不了。
其实出现这个问题肯定是新老版本Cocoapods与Podfile兼容出了问题,最彻底的办法只能是先移除老版的pod关联内容,再重新用最新的pod来pod install。
经常用pod install命令,那么是不是也有pod uninstall呢?答案是没有。
不过,好在有第三方解决方案:pod deintegrate
和pod clean
:
$ sudo gem install cocoapods-deintegrate cocoapods-clean
$ pod deintegrate
$ pod clean
$ rm Podfile //因为我们是清理旧版本pod数据,所以这一步不是必需的
如果你是要在项目中彻底移除Cocoapods,上面的方法也是你需要的。
执行完上面前三步命令后,我们的项目就变成一个干净的无pod项目,重新执行pod install后打开xcworkspace文件运行项目,问题彻底解决!
参考: