我已经做了几个月的iOS开发了,刚刚了解到有前途的用于依赖管理的CocoaPods库。
我在一个个人项目中尝试过:在我的Podfile中添加了对Kiwi的依赖,运行pod install CocoaPodsTest。Xcodeproj,瞧,它工作得很好。
我唯一想知道的是:我要签入什么,为了版本控制我要忽略什么?似乎很明显,我想签入Podfile本身,也可能是.xcworkspace文件;但是我是否忽略了Pods/目录?是否还会生成其他文件(当我添加其他依赖项时),也应该添加到.gitignore中?
TL;DR:当你跟踪Pods/文件夹时,项目更容易
从。当你不跟踪它的时候,就更容易在时间上进行改进
你在一个团队中工作。
虽然Cocoapods组织鼓励我们跟踪Pods/目录,但他们说这取决于开发人员根据这些利弊来决定是否这样做:http://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
就我个人而言,我通常只跟踪那些我暂时不会再做的项目的Pods/文件夹。这样,任何开发人员都可以快速地从中吸取教训,并使用合适的cocoapods版本继续工作。
另一方面,我认为当你不跟踪Pods/文件夹时,提交历史会变得更清晰,更容易合并代码和审查其他人的代码。我通常在安装cocoapod库时设置它的版本,以确保任何人都可以使用与我相同的版本安装项目。
此外,当pod /目录被跟踪时,所有开发人员都必须使用相同版本的Cocoapods,以防止每次我们运行pod install来添加/删除pod时更改数十个文件。
底线:当您跟踪Pods/文件夹时,项目更容易从其中获取。当你不追踪它的时候,就更容易改进。
.gitignore file
没有答案真的提供了。gitignore,所以这里有两种口味。
在Pods目录中检查(好处)
Xcode/iOS友好的git忽略,跳过Mac OS系统文件,Xcode,构建,其他存储库和备份。
. gitignore:
# Mac OS X Finder
.DS_Store
# Private Keys
*.pem
# Xcode legacy
*.mode1
*.mode1v3
*.mode2v3
*.perspective
*.perspectivev3
*.pbxuser
# Xcode
xcuserdata/
project.xcworkspace/
DerivedData/
# build products
build/
*.[oa]
# repositories
.hg
.svn
CVS
# automatic backup files
*~.nib
*.swp
*~
*(Autosaved).rtfd/
Backup[ ]of[ ]*.pages/
Backup[ ]of[ ]*.key/
Backup[ ]of[ ]*.numbers/
忽略Pods目录(好处)
.gitignore:(附加到前面的列表)
# Cocoapods
Pods/
不管你是否检查Pods目录,Podfile和Podfile。Lock应该始终保持在版本控制之下。
如果pod没有签入,您的Podfile可能需要为每个Cocoapod请求明确的版本号。Cocoapods.org的讨论。