cocoapods的安装和使用

第一步:先检查是否有安装残留,由于Mac 10.11更改了安全机制,所以cocoapods得安装和卸载命令也有所改变

1、如果之前装过cocopods,最好先卸载掉,卸载命令:
sudo gem uninstall cocoapods【Mac 10.10之前】
sudo gem uninstall -n /usr/local/bin cocoapods【Mac 10.11之后】

2、先查看本地安装过的cocopods相关东西【本步骤没有必要】,命令如下:
gem list --local | grep cocoapods
会显示如下:
cocoapods-core (0.39.0)
cocoapods-downloader (0.9.3)
cocoapods-plugins (0.4.2)
cocoapods-search (0.1.0)
cocoapods-stats (0.6.2)
cocoapods-trunk (0.6.4)
cocoapods-try (0.5.1)
然后逐个删除吧:
sudo gem uninstall cocoapods-core【Mac 10.10之前】
sudo gem uninstall -n /usr/local/bin cocoapods-core【Mac 10.11之后】

3、要使用CocoaPods,那就要下载安装它,而下载安装CocoaPods需要Ruby环境
当前安装环境为Mac os 10.13.6,Mac  OS本身自带Ruby,但还是更新一下保险,不更新有安装失败的可能性,Mac系统最新的情况下,感觉不用更新Ruby
(a)查看下当前ruby版本:打开终端输入ruby -v
(b)cocoapods镜像:https://gems.ruby-china.org/ 好像现在不支持淘宝了
终端输入如下命令(把Ruby镜像指向Ruby China,避免被墙)
gem sources --remove [https://rubygems.org/](https://rubygems.org/) 
gem sources --add [https://gems.ruby-china.org/](https://gems.ruby-china.org/)
gem sources -l(用来检查使用替换镜像位置成功)

第二步:安装cocoapods

1.下载:sudo gem install -n /usr/local/bin cocoapods
2.设置:pod setup
如果要查看设置的进度:(因为要下载的东西很多,所以看一下进度)
新建一个终端:command + n
进入Cocoapods里:cd ~/.cocoapods
查看进度:du -sh *

第三步:使用

1.先找到要使用的三方库:pod search + 第三方库名称
2.出来一堆列表页面,选择三方库最新版本的命令,例如:pod 'SDWebImage', '~> 3.8.1'
3.创建工程,进入工程:cd + 工程路径(最简单的方法就是写完cd 之后直接把工程文件夹拖入终端)
4.编辑工程的Podfile文件:vim Podfile
5.使Podfile处于编辑状态,将要下载的内容放在这个里面:pod 'SDWebImage', '~> 3.8.1'(这里关于终端的操作:复制完第三方要退出,(q);处于编辑状态,(i);编辑完之后要退出并保存,先ESC,再(:wq);)
6.保存Podfile设置,然后进行更新下载三方库:pod update或者pod install,忽略更新的下载第三方库,可以使用pod install --verbose --no-repo-update或pod update --verbose --no-repo-update,这样速度更快

编辑工程的Podfile时注意:

platform :ios, '8.0'
target "targetName" do
pod 'SDWebImage', '~> 3.8.1'
end

补充:

1、CocoaPods的基本安装及使用都详细的说明了,但还有一些补充,当需要同时导入多个第三方时候怎么办 ?
这就需要修改Podfile了,就是用vim编辑的那个保存在项目根目录中的文件,修改完了Podfile文件,需要重新执行一次pod install命令。

2、CocoaPods可以查找你想要的第三方库
终端输入命令:pod search JSONKit
然后重新编辑Podfile文件,按照之前的步骤,把更多的库都导入项目!

3、如果已经生成了CocoaPods管理的工程,则可以在Xcode中编辑Podfile,编辑保存后,别忘记cd到根目录,调用pod install命令

4、项目存在多个Target的时候,需要配置Podfile文件来支持新增加的Target,否则只支持项目默认建立时生成的Target:
a、如果新建一个Target,命名为Second,并且Second与Test两个Target所需要的第三方支持相同,也就是使用相同的Pods依赖库,则可以使用
link_with关键字:
link_with 'Test', 'Second'  
platform :ios, '8.0' 
pod 'AFNetworking', '~> 2.0'  
end

b、如果不同的Target需要不同的依赖库,则可以
platform :ios, '8.0'
target :'Test' do  
pod 'Reachability'  
pod 'SBJson'     
pod 'AFNetworking'   
end    

target :'Second' do  
pod 'OpenUDID'   
end  

5、如果要移除Cocoapods,则可以:
a. 删除工程文件夹下的Podfile、Podfile.lock及Pods文件夹
b. 删除xcworkspace文件
c. 使用xcodeproj文件打开工程,删除Frameworks组下的Pods.xcconfig及libPods.a引用
d. 在工程设置中的Build Phases下删除Check Pods Manifest.lock及Copy Pods Resources

ps:如果将cocoapods集成到工程中后不小心修改或删除了其相关文件导致无法便以通过例如:不小心把
Pods.xcconfig给删除了然后出现diff: /../Podfile.lock: No such file or directory,用上面的方法删除cocoapods后,再重新$sudo pod install一下就好了。
如果编译的时候出现权限问题,对工程文件夹$sudo chmod 777 path-to-project-folder/*
sudo chown 777 path-to-project-folder/*

6、当库正常导入,但还是找不到相关头文件,则可以:
在TARGETS -> Search Paths -> User Header Search Paths 中 写入 ${SRCROOT}再将后面参数改为recursive:

7、Xcode - ld: library not found for -lPods
当新增加一个Target,并且pod install后,由于创建项目是默认创建的Target的Build Phases中引用了旧的.a,例如libPods.a,当新增加Targget后,libPods.a已经变成了libPods-Test.a,而新增加的Target名字为Second,依赖的.a为libPods-Second.a。所以libPods.a此时已经不再被引用,并且不会被生成,如果任何地方引用了就会报错,解决办法是出现问题的Target的Build Phases中删除无用的.a引用,例如libPods.a

8、pod update
若果Podfile中指定的依赖库版本不是写死的,当对应的依赖库有了更新,无论有没有Podfile.lock文件都会去获取Podfile文件描述的允许获取到的最新依赖库版本。

9、在引用第三方,如果想明确第三方版本号的时候,还有一些小细节:
pod 'AFNetworking'      //不显式指定依赖库版本,表示每次都获取最新版本  (8、pod update)  
pod 'AFNetworking', '2.0'     //只使用2.0版本    
pod 'AFNetworking', '> 2.0'     //使用高于2.0的版本    
pod 'AFNetworking', '>= 2.0'     //使用大于或等于2.0的版本    
pod 'AFNetworking', '< 2.0'     //使用小于2.0的版本    
pod 'AFNetworking', '<= 2.0'     //使用小于或等于2.0的版本    
pod 'AFNetworking', '~> 0.1.2'     //使用大于等于0.1.2但小于0.2的版本    
pod 'AFNetworking', '~>0.1'     //使用大于等于0.1但小于1.0的版本    
pod 'AFNetworking', '~>0'     //使用最新版本,与不显示指定依赖库版本相同 

10、如果pod install之后,一直停留在Updating local specs repositories,可以试一试 pod install --verbose --no-repo-update,原因是pod install被墙了

11、删除某个框架
打开Podfile文件,删除JSONKit该行,即:
platform :ios, '8.0'
pod 'AFNetworking', '~> 2.1.0'
pod 'JSONKit', '~> 1.5pre'(删除该行)
pod 'MBProgressHUD', '~> 0.8'
(如果想换成1.1版本,将被删除的行改成pod 'JSONKit-NoWarning', '~> 1.1'即可)

你可能感兴趣的:(cocoapods的安装和使用)