一、添加代码库到你的Xcode工程
1.安装
- 创建一个空的Podfile文件,然后添加你的依赖库,格式如下:
target 'MyApp' do
pod 'AFNetworking', '~> 3.0'
pod 'FBSDKCoreKit', '~> 4.9'
end
- 在你的工程文件夹中运行指令$ pod install
- 打开App.xcworkspace并编译
2.创建一个含CocoaPods的Xcode工程
创建一个含CocoaPods的Xcode工程的简单步骤:
- 和平常一样在Xcode中创建新工程
- 打开一个终端窗口,使用$ cd命令切换到你的工程目录
- 创建一个空的Podfile文件,也可以使用命令$ pod init来完成
- 打开你的Podfile文件,第一行应该指定使用平台和支持的系统版本,格式:
platform :ios, '9.0'
- 为了能正常使用 CocoaPods,您需要定义关联的Xcode target。例如你正在写一个iOS app,它就是你的app名字。使用target '$TARGET_NAME' do和几行之后的end作为target之间的区分。
- 在你的target区块中,用pod '$PODNAME'独占一行来添加三方库。
格式如下:
target 'MyApp' do
pod 'ObjectiveSugar'
end
- 保存Podfile文件
- 执行命令$ pod install
- 打开已经创建的工作空间MyApp.xcworkspace,后面开发这个应用就使用这个工作空间了。
3.整合一个已经存在的工作空间
整合一个已经存在的工作空间需要在Podfile文件中再加一行代码。只需要在target区块外部简单地指定.xcworkspace工作空间的文件名,比如:
workspace 'MyWorkspace'
二、什么时候使用pod install或pod update?
很多人对于什么时候使用 pod install和什么时候使用pod update感到困惑。尤其是,本应该使用pod install,却使用了pod update。
很多人一开始可能都认为pod install是在首次配置和使用三方库的时候使用,然后就都使用pod update。但是,根本不是这样的。
使用总结:
- 安装新的三方库,请使用pod install,即使已经创建了Podfile文件和运行Pod install命令。也就是说只是添加和删除三方库都是使用Pod install命令
- 更新某个三方库的版本才使用pod update [PODNAME]
1.命令的详细说明
(1)pod install
第一次安装三方库,添加、升级或者移除三方库都可以使用这个命令,注意点如下
- 每次执行pod install命令下载和安装新的三方库时,会在Podfile.lock文件中写入每一个三方库安装的版本。这个文件会监控和记录三方库的版本;
- 当你执行pod install命令时,只会处理在Podfile.lock文件中没有的依赖关系;
- 在Podfile.lock文件中列出的三方库,CocoaPods会下载对应的准确版本,不会去检查和下载新版本
- 没有在Podfile.lock文件中列出的三方库,CocoaPods会根据Podfile中的描述去查找合适的版本;
(2)pod outdated
当你执行pod outdated指令时,CocoaPods会列出在Podfile.lock文件中列出的已安装的三方库的新版本。这表示如果你执行命令pod update PODNAME,指定的三方库就会更新,只要仍然符合Podfile中定义的条件,如pod 'MyPod', '~>x.y'
。
(3)pod update
当你执行pod update PODNAME指令时, CocoaPods会去指定三方库的新版本,而不考虑Podfile.lock中列出的版本。可能会更新到最新的符合你在Podfile 文件中定义的版本。
如果你执行pod update而不带三方库名,CocoaPods将可能会更新所有在Podfile中列出的三方库版本到最新符合Podfile的版本;
2.使用简明
使用pod update PODNAME,你将只更新指定的三方库(检查响应的新版本和更新三方库),与不更新已安装三方库版本的pod install命令不同
当你在Podfile文件中添加一个三方库时,你应该运行pod install命令去安装新的三方库,而不是pod update,以避免把已经安装的三方库更新的风险。
当你要更新指定或者全部三方库时,你只应该使用pod update命令。
3.提交你的Podfile.lock文件
如果你不想提交你的三方库文件夹到代码库,你应该提交你的Podfile.lock文件。否则会破坏掉你原先安装的三方库版本逻辑。
4.单单使用Podfile文件是不够的
因为每一个三方库都会更新,不同的时间根据Podfile中的定义获得的三方库可能不同(Podfile文件中的版本定义通常是范围控制的),所以需要Podfile.lock文件配合使用(Podfile.lock会记录当前安装的三方库版本),并且恰当使用pod install和pod update命令。
三、要不要把三方库文件夹加入源码管理?
要不要添加,取决于你。我们建议你加入源码管理,但是不要添加到版本控制(.gitignore)。
-
加入的好处
(1)只要克隆完代码就可以直接运行,不需要安装CocoaPods等一系重新安装三方库的繁琐操作;
(2)工程依赖的三方库永远存在,即使三方库的来源都没了,如GitHub
(3)克隆完代码,三方库就和原来安装的一模一样。 -
不加入的好处
(1)代码控制仓库会更小,节省空间;
(2)只要三方库来源存在,CocoaPods就有能力再次创造一样的三方库安装配置
(3)源码管理的时候不会因为三方库的版本不同而产生冲突
不论是否将三方库文件夹加入源码管理,都应该将Podfile和Podfile.lock加入版本控制。
# Xcode
.DS_Store
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
!default.xcworkspace
xcuserdata
*.moved-aside
*.mobileprovision
DerivedData
.idea/
# Pods - for those of you who use CocoaPods可选
Pods
Podfile.lock