Objective-C
Xcode
CocoaPods
Swift

Cocoapodsとソース管理

More than 1 year has passed since last update.

Cocoapodsのソース管理

Cocoapodsが導入されて、僕らのライブラリ管理はだいぶ楽になりました。

もうHeader Search PathsがどうとかOther Linker Flagの悪夢に連日連夜悩まされる事は(ほぼ)無くなり、
集中してプログラミングできるようになって嬉しい限りです。

ただ、cocoapodsでインストールしたライブラリってGitとかのソース管理上どう扱ったらいいんだろう?
Podfileのみコミット対象にしてPods以下はgitignore?
それともworkspace丸ごと?

推奨設定 - Podsも自前でソース管理

CocoaPods Guides -Using CocoaPodsに以下のように記載されていました。

Whether or not you check in your Pods folder is up to you, as workflows vary from project to project. We recommend that you keep the Pods directory under source control, and don't add it to your .gitignore. But ultimately this decision is up to you:

要するに、
Podディレクトリはそれぞれでソース管理して、gitignoreしないほうがいいよ!まぁ最終的にはあなた次第だけどね。との事。

上記を推奨する理由として、

  • インターネット環境に接続できない端末や、"pod install"をしていなくても、リポジトリをチェックアウトすればすぐビルドできる
  • Podsの元ソース(GitHub上など)が利用できなくなり、pod installできない可能性がある
  • Pods以下のソースがプロジェクトで使われているライブラリのソースと同一である事が保証されている

が挙げられていました。

非推奨 - Podsはgitignore

一応、Podsをソース管理しない利点も挙げられています。

  • リポジトリのサイズを最小限に抑えられる
  • Podsの元ソースが利用可能でありさえすれば、CocoapodsでPodsの再インストールは可能(正し同一のソースである事は保証されない)
  • 別バージョンのPodを利用している各ブランチをマージする際などにコンフリクトが発生しない

結論

特に理由がない限りは、Podsディレクトリ以下も含めてコミット対象とした方がよさそうです。
どちらにしろ、PodfileとPodfile.lockはソース管理するように!