一. 关于CocoaPods
CocoaPods的原理是将所有的依赖库都放到另一个名为Pods的项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中。Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。
在使用CocoaPods后,我们只需要把用到的开源库放到一个名为Podfile的文件中,然后执行pod install就可以了,Cocoapods就会自动将这些第三方开源库的源码下载下来,并且为我们的工程设置好响应的系统依赖和编译参数。
二.CocoaPods的安装
CocoaPods可以方便地通过Mac自带的RubyGems安装。
打开Terminal(Mac电脑自带的终端),然后按照以下提示操作即可:
1.设置ruby的软件源
这是因为ruby的软件源rubygems.org因为使用亚马逊的云服务,被我天朝屏蔽了,需要更新一下ruby的源,过程如下:
gem sources -l #(查看当前ruby的源)
gem sources --remove https://rubygems.org/ #(移除当前ruby的源)
gem sources -a http://rubygems-china.oss.aliyuncs.com #(设置当前ruby的源为我天朝的)
或者
gem sources -a https://gems.ruby-china.com
(以前的版本是 gem sources -a https://gems.ruby-china.org,现在已经修改了)
gem sources -l #(再次查看当前ruby的源)
1
2
3
4
5
6
7
8
9
如果Terminal输出:
http://rubygems-china.oss.aliyuncs.com
就证明ruby的软件源已经设置OK了。
2.设置gem为最新版本
如果gem太老,可以尝试用如下命令升级gem:
在Terminal输入以下命令:
sudo gem update –system
升级成功后会提示: Latest version currently installed. Aborting.
3.执行安装CocoaPods命令
注意:OS X 10.11 升级,虽然官方声称只是一个小的升级,但对于开发者而言,cocoapods需要重新安装,但按照以前的安装方式,在Terminal输入以下命令:
sudo gem install cocoa pods
1
如果报以下错误:
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/xcodeproj
1
2
3
解决方案1:
执行下面的命令并重启
sudo nvram boot-args=”rootless=0”
sudo reboot
重启之后, 执行这个命令检查
sudo gem install cocoapods -V
如果依旧有错误,使用第二个方案
解决方案2:
sudo gem install -n /usr/local/bin cocoapods
pod setup
还有一点需要注意,pod setup在执行时,会输出Setting up CocoaPods master repo,但是会等待比较久的时间。这步其实是 Cocoapods 在将它的信息下载到 ~/.cocoapods目录下,如果你等太久,可以试着 cd 到那个目录,用du -sh *来查看下载进度。(我在这一步的时候速度只有2kbps,后来百度了提升速度的方法,完美解决)
安装成功后,你会看到:Setup completed.
三. CocoaPods的使用
以实际例子为例:
背景:我先在/Users/hbw/Desktop/IOSWorkspace/cocoaPodsTest路径新建了一个xcode project文件夹。
现在我想向这个project中导入第三方的框架AFNetworking。
第一步:
打开终端,将终端目录切换到cocoaPodsTest项目的根文件夹:
cd /Users/hbw/Desktop/IOSWorkspace/cocoaPodsTest
1
第二步:
使用终端在前述的根目录中创建一个名为Podfile的文件:
vim Podfile
1
然后键盘输入 i,进入编辑模式,输入
platform :ios
target "cocoaPodsTest" do
pod 'AFNetworking'
end
1
2
3
4
5
最后,按Esc,并且输入“ :”号进入vim命令模式,然后在冒号后边输入wq。
至此,你打开根目录文件夹就会发现文件夹中多了一个名为Podfile的文件。
第三步:
在终端输入:
pod install
1
过了一会就会提示AFNetworking安装成功:
Analyzing dependencies
Downloading dependencies
Installing AFNetworking (0.10.1)
Generating Pods project
Integrating client project
[!] Please close any current Xcode sessions and use cocoaPodsTest.xcworkspace
for this project from now on.
Sending stats
Pod installation complete! There is 1 dependency from the Podfile and 1 total pod installed.
1
2
3
4
5
6
7
8
9
最终结果:
注意⚠️:这样安装完成以后,你一定要点击
这个图标才能正确的开启项目:
我们看到AFNetworking已经静静地躺在我们的项目中了。
关于 Podfile.lock
当你执行pod install之后,除了 Podfile 外,CocoaPods 还会生成一个名为Podfile.lock的文件,Podfile.lock 应该加入到版本控制里面,不应该把这个文件加入到.gitignore中。因为Podfile.lock会锁定当前各依赖库的版本,之后如果多次执行pod install 不会更改版本,要pod update才会改Podfile.lock了。这样多人协作的时候,可以防止第三方库升级时造成大家各自的第三方库版本不一致
原文:https://blog.csdn.net/hbw1992322/article/details/59108464