这篇文章主要讲.gitignore在Xcode中的使用
关于.gitignore
在Xocde中使用git管理版本时,经常会有一些文件是不需要提交的。这个时候可以在项目根目录添加一个.gitignore文件,git会根据.gitignore内容,选择忽略哪些文件。
文件内容示例:
# 以'#' 开始的行,被视为注释.
# 忽略掉所有文件名是 foo.txt 的文件.
foo.txt
# 忽略所有生成的 html 文件,
*.html
# foo.html是手工维护的,所以例外.
!foo.html
# 忽略所有.o 和 .a文件.
*.[oa]
当然.gitignore要像其他文件一样提交到项目仓库(git add .gitignore、git commit -m "add .gitignore")。
.gitignore详细语法
Xcode中.gitignore用法
以下是Objective-C.gitignore官方的写法
# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
## Build generated
build/
DerivedData/
## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata/
## Other
*.moved-aside
*.xcuserstate
## Obj-C/Swift specific
*.hmap
*.ipa
*.dSYM.zip
*.dSYM
# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
#
# Pods/
# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts
Carthage/Build
# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
# screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md
fastlane/report.xml
fastlane/screenshots
#Code Injection
#
# After new code Injection tools there's a generated folder /iOSInjectionProject
# https://github.com/johnno1962/injectionforxcode
iOSInjectionProject/
需要再补充一个:.DS_Store
.DS_Store (英文全称 Desktop Services Store)[1] 是一种由苹果公司的Mac OS X操作系统所创造的隐藏文件,目的在于存贮目录的自定义属性,例如文件们的图标位置或者是背景色的选择。并不需要作为项目管理文件提交管理。
Pods文件夹的版本控制
如果是团队开发,将Pod文件夹纳入版本控制,可以使其他成员clone项目时可以直接使用,但这样会使repo的体积增大。
如果为了减少repo的体积,手动管理Pods文件夹的时候,Podfile和Podfile.lock是必不可少的,这样操作简单,而且能保证所使用的Pod版本是正确的。
相关文件介绍
Podfile:
Podfile 是一个文件,用于定义项目所需要使用的第三方库。该文件支持高度定制,你可以根据个人喜好对其做出定制。更多相关信息,请查阅 Podfile 指南。Podspec:也是一个文件,该文件描述了一个库是怎样被添加到工程中的。它支持的功能有:列出源文件、framework、编译选项和某个库所需要的依赖等。
Podfile.lock:这是 CocoaPods 创建的最重要的文件之一。它记录了需要被安装的 pod 的每个已安装的版本。如果你想知道已安装的 pod 是哪个版本,可以查看这个文件。应该将 Podfile.lock 文件加入到版本控制中,这有助于整个团队的一致性。
Mainifest.lock:这是每次运行 pod install 命令时创建的 Podfile.lock 文件的副本。如果你遇见过这样的错误
The sandbox is not in sync with the Podfile.lock
,这是因为 Manifest.lock 文件和 Podfile.lock 文件不一致所引起。该文件不纳入版本控制。