Podfile.lock
这是 CocoaPods 创建的最重要的文件之一。它记录了需要被安装的 pod 的每个已安装的版本。如果你想知道已安装的 pod 是哪个版本,可以查看这个文件。推荐将 Podfile.lock 文件加入到版本控制中,这有助于整个团队的一致性。
Manifest.lock
这是每次运行 pod install 命令时创建的 Podfile.lock 文件的副本。如果你遇见过这样的错误 沙盒文件与 Podfile.lock 文件不同步 (The sandbox is not in sync with the Podfile.lock),这是因为 Manifest.lock 文件和 Podfile.lock 文件不一致所引起。由于 Pods 所在的目录并不总在版本控制之下,这样可以保证开发者运行 app 之前都能更新他们的 pods,否则 app 可能会 crash,或者在一些不太明显的地方编译失败。
参考
第一种方式: (.添加Pods文件夹 、Podfile.lock 、Manifest.lock 文件忽略忽略 )
在第一次向代码仓库中导入(import)项目时, 记得执行一下操作:
1.使用cornerStone (CornerStone -> Preference -> Subversion )
image.png
2.必需提交Podfile 文件
在这里 pod 'XXXXX', '~>2.3.3', 是否制定版本号,都无所谓了:
- 因为Pods是被忽略掉的;
- 且Podfile 文件为什么要忽略呢?就是不限制团队的其他人更新pod install时需要的依赖库版本;
注意: 对于已经导入的存在Pods文件夹的项目,此方式不适用;
此方式不推荐
第二种方式: (忽略Pods 文件夹、Manifest.lock 文件,不忽略Podfile.lock)
- Podfile 必需明确指定版本号
Podfile
pod 'AFNetWorking', '~>2.3.1'
必需指定版本号
pod 'AFNetworking' //不显式指定依赖库版本,表示每次都获取最新版本
pod 'AFNetworking', '2.0' //只使用2.0版本
pod 'AFNetworking', '> 2.0' //使用高于2.0的版本
pod 'AFNetworking', '>= 2.0' //使用大于或等于2.0的版本
pod 'AFNetworking', '< 2.0' //使用小于2.0的版本
pod 'AFNetworking', '<= 2.0' //使用小于或等于2.0的版本
pod 'AFNetworking', '~> 0.1.2' //使用大于等于0.1.2但小于0.2的版本
pod 'AFNetworking', '~>0.1' //使用大于等于0.1但小于1.0的版本
pod 'AFNetworking', '~>0' //高于0的版本,写这个限制和什么都不写是一个效果,都表示使用最新版本
[参考](https://blog.csdn.net/u012460084/article/details/45721857)
- Podfile.lock 是个什么文件呢?
先要弄清楚它是怎么产生的, 大概就知道它是做什么用的了.
- 第一次执行完 pod install 时产生;
- 它包含的内容,就是依赖库的版本号;
- 后缀.lock的意思就是锁定, 提交到代码仓库时, 必需提交,因为它锁定了,依赖库的版本号,当团队的其他人员执行pod install 的时候,就会按Podfile.lock 中相应依赖库的版本号更新;
推荐此方式
两种方式, Pods是都不需要提交的
还有关于忽略的一些文件
*.xcuserdatad
Pods
Podfile.lock
xcuserdata
*.xcscmblueprint
build
*.pbxuser
*.mode1v3
*.mode2v3
*.perspectivev3
*.xcworkspace
别把*.a(静态库)文件、 project.pbxproj 忽略
网友评论