我如何正确使用CocoaPods

时间:2014-10-29 15:21:02

标签: ios cocoapods

我对CocoaPods有一些疑问

  1. 我认为第一条规则是保留Podfile 并完全忽略pods文件夹。但是在我用了一些时间后,我对此感到很困惑
  2. 由于我坚持#1,有人说* .lock应该保存在repo中。我需要这样做吗?
  3. Pods会生成一些xconfig个文件,我似乎无法添加HEADER_SEARCH_PATH个文件? 如果YES,它会再次破坏我的规则#1。请参阅此问题the-target-overrides-the-other-ldflags-build-setting-defined-in-pods-pods
  4. 一些伙伴修改由CocoaPods管理的代码,例如AFNetworking而不是自定义仓库。我告诉他从不这样做,因为它会在pod update/install之后恢复到原始版本但在pod update/install之后他的代码没有改变。这是为什么?
  5. 我的观点是DON'T MODIFY EVERTHING IN PODS PROJECT EXCEPT PODFILE

1 个答案:

答案 0 :(得分:3)

你应该总是检查你的Podfile和Podfile.lock。

签入你的Pods目录是值得商榷的。如果您希望能够克隆项目并运行它而不需要用户使用CocoaPods,您应该检查它。我个人不检查此目录,而只需在克隆项目后运行pod install这是第一次。

如果您想更改xcconfig文件并更改HEADER_SEARCH_PATH,则应检查此内容,以免意外覆盖这些设置。实际上podspec应该处理所有这些设置,因此你可能不应该在那里做太多变化。

如果您计划更改Pod包含的代码,您应该检查Pods文件夹或分叉repo并将其重定向到Podfile中。关于here的文件。这样你可以指定CocoaPods使用给定的规范,但是使用你的fork。

编辑 Podfile.lock(类似于Gemfile.lock)存储有关安装期间包含的实际版本的信息。考虑一下:

  1. 您的Podfile中需要pod 'foo', '~> 1.0.0等规范。
  2. 您运行pod install并安装与语义版本控制约定匹配的最新版foo(由~>指定)
  3. 您没有签入Podfile.lock
  4. 另一位开发人员克隆了回购,foo的最新版本现在为1.0.3
  5. 他们运行pod install。即使版本1.0.3未运行,也会安装pod update版。
  6. 此信息在Podfile.lock中被“锁定”,因此要执行此操作,您必须运行非常有意的pod update