1. 设置ruby的软件源
因为ruby的软件源rubygems.org,天朝有一道神奇的墙把他屏蔽了~~,需要我们手动更新软件源,之前一直都是用的淘宝的,貌似现在已经不再维护了,所以现在用https://gems.ruby-china.org/
gem sources -l //查看当前的源,我查看的结果是https://rubygems.org/
gem sources --remove https://rubygems.org/ //移除当前ruby的源
gem sources -a https://gems.ruby-china.org/ //设置当前ruby的源
gem sources -l //再次查看当前ruby的源
如果此时的terminal输出结果为:https://gems.ruby-china.org/ 那就说明成功了
2. 查看并更新gem
使用 gem -v 查看当前的版本
sudo gem update --system //更新RubyGems软件
3. 安装CocoaPods
sudo gem install -n /usr/local/bin cocoapods
/*如果没有-n /usr/local/bin,而直接使用sudo gem install cocoapods,会报一个如下错误:
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/xcodeproj
*/
pod setup // 此时可能会卡住不动,那是因为在下载本地库,可cd到~/.cocoapods该目录,用du -sh *命令来查看下载进度
4.使用cocoapods依赖第三方库
1. 打开控制台终端Terminal,cd到当前工程目录下使用pod init初始化Profile文件
2. 在Profile文件中会有如下几个重要的信息:
# platform :ios, '9.0' // 最低支持的iOS系统版本,如果要适配低版本的系统,比如要适配iOS8,那么将#去掉 ,并将9.0改为8.0
# use_frameworks! // 这个一般是在swift或者使用动态库要打开的,一般情况不做处理
在Profile文件中:
platform :ios, '8.0' // 指定适配iOS8
// 导入第三方依赖库
pod 'AFNetworking', '~> 3.1.0' // 指定导入的框架的版本
pod 'YYModel' // 默认导入适配当前系统版本的最新框架版本
3. 执行pod install // pod install每一次会链接远程库进行下载更新,可能会需要等待一段时间
使用CocoaPods来添加第三方类库,无论是执行pod install还是pod updat很多时候都卡在了Analyzing dependencies不动,这是更新本地的pod spec所以文件导致的。通过--no-repo-update标志可以不更新本地pod spec索引。当然首次install不应该添加这个标志,后续修改Podfile的时候可以适当使用,加快pod速度
pod install --no-repo-update
pod update --no-repo-update
5.在项目工程中使用及相关文件
1、在用pod导入框架之后,双击新生成.xcworkspace来打开工程
2、一般来讲用pod导入的框架需要用#import<>来导入头文件
3、提交到git上的代码是不包含pod依赖库的,所以down下来后都需要pod一下,添加依赖库
4、profile.lock里面有导入框架的版本信息,每次pod(如果已经存在该文件),会从该文件中读取相关的框架信息。在多人开发中可以有效锁定版本依赖,防止版本不同导致的每次使用都要update一下
6.pod相关命令(终端输入)
pod search afn //搜索框架pod是模糊搜索,写缩写也可以,按Q可以退出搜索界面
使用git的HEAD指向的分支
pod 'ISO8601DateFormatter', :head
使用 master 分支
pod 'ARAnalytics/Mixpanel', :git => 'https://github.com/orta/ARAnalytics.git'
指定branch
pod 'Reachability', :git => 'https://github.com/ashfurrow/Reachability.git', :branch => 'frameworks'
指定tag
pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :tag => '0.7.0'
指定commit
pod 'ARTiledImageView', :git => 'https://github.com/dblockARTiledImageView', :commit => '1a31b864d1d56b1aaed0816c10bb55cf2e078bb8'