1、使用CocoaPods来管理第三方框架时,当执行 pod install / pod update后,可能会很慢,一直卡着不动,原因是当执行以上两个命令的时候会升级CocoaPods的spec仓库,加一个参数可以省略这一步,然后速度就会提升不少。加参数的命令如下:
pod install --verbose --no-repo-update
pod update --verbose --no-repo-update
2、使用CocoaPods时出现如下警告:
(1)Your Podfile has had smart quotessanitised. To avoid issues in the future, you should not use TextEdit forediting it. If you are not using TextEdit, you should turn off smart quotes inyour editor of choice.
原因分析:不要使用文本编辑去编辑Podfile,使用Xcode编辑,或者使用终端敲命令去编辑。
(2)The file “Pods.xcconfig” couldn’t be opened because there is no such file.
解决方案:pod update即可。
(3)有时直接执行 pod install 命令时,会发现类库导入不成功,并且终端出现如下提示:
Required version ( …… ) not found for …… Available versions: 3.1.0。
原因分析:Podfile文件过期,类库有升级,但是Podfile没有更改。
(4)pod install 和 pod update 的区别
<1>pod install 只会按照Podfile的要求来请求类库,如果类库版本号有变化,那么将获取失败。
<2> pod update会更新所有的类库,获取最新版本的类库。
<3> 根据个人需求,看是否需要更新类库,一般建议直接使用 pod update。
3、删除项目中已经配置的类库
(1)找到对应项目中的Podfile文件,假设已经添加了如下第三方库:
pod ‘pop’, ‘~>1.0.9’
pod ‘AFNetworking’, ‘~>3.1.0’
pod ‘MBProgressHUD’, ‘~>0.9.2’
pod 'SDWebImage', '~> 3.8.1'
现在想移除 AFNetworking 框架,只需要删除该Podfile文件中的 pod ‘AFNetworking’, ‘~>3.1.0’
即可,删除后的Podfile文件如下:
pod ‘pop’, ‘~>1.0.9’
pod ‘MBProgressHUD’, ‘~>0.9.2’
pod 'SDWebImage', '~> 3.8.1'
(2)打开终端,cd 到当前项目目录下,重新执行pod update / pod install命令即可从项目中移除 AFNetworking 框架。
4、怎样从项目中移除CocoaPods
(1)删除项目所在文件夹中的如下文件:
(2)同时删除项目所在文件夹中,后缀名为 .xcworkspace 的文件:
(3)使用Xcode打开后缀名为 .xcodeproj 的项目,删除如下文件:
(4)通过Xcode中的Build Phases选项,删除下图中的 Check Pods Manifest.lock、Embeded Pods Frameworks 和 Copy Pods Resources,然后重新 Build 该项目即可(此时已经将CocoaPods从项目中移除了):
5、Podfile.lock 文件的作用
(1)Podfile.lock文件的最大用处在于多人开发时,如果在Podfile文件中“没有指定Pods依赖库的版本“,如下:
pod ‘SDWebImage’
此时默认会获取当前SDWebImage这个Pods依赖库的最新版本。
(2)此时当团队中的某个人执行完pod install命令后,生成的Podfile.lock文件就记录下了当时最新Pods依赖库的版本,这时团队中的其它人check下来这份包含Podfile.lock文件的工程以后,再去执行pod install命令时,获取下来的Pods依赖库的版本就和最开始用户获取到的版本一致。
(3)如果没有Podfile.lock文件,后续所有用户执行pod install命令都会获取最新版本的SDWebImage,这就有可能造成同一个团队使用的依赖库版本不一致, 这对团队协作来说是不合适的。
(4)此时,如果团队想使用当前最新版本的SDWebImage依赖库,有两种方案:
<1> 更改Podfile文件,使其指向最新版本的JSONKIT依赖库;
<2> 执行pod update命令;
(5)Podfile.lock文件对团队协作开发很重要,建议将它添加到版本管理中。