CocoaPodsについて
ドキュメントを読んでみよう
ライブラリ管理システムということですね。そういえばたしかに普段iosディレクトリにいって、pod updateしてました。
ライブラリ間の依存関係とは、ライブラリAを実行するためにはライブラリBが必要という状況は、ライブラリAはライブラリBに依存しているといえる。
この依存関係を解決して、結果のソースコードを読み込んでから、Xcode workspaceでライブラリとリンクしてプロジェクトをビルドしている。
CocoaPods は Ruby で構築されており、macOS で利用可能なデフォルトの Ruby でインストールできるそうで、日本で開発されたRubyで構築されてるとか少し感動する。
pod install と pod updateはいつ使用すればいい?
pod install
プロジェクトのライブラリを初めて取得するときに使用するが、Podfileを編集してライブラリを追加、更新、または削除するときにも使用する。
新しいライブラリがダウンロードされるたびに、ライブラリごとにインストールしたバージョンがPodfile.lockに書き込まれる。Podfile.lockは各ライブラリのバージョンを追跡してバージョンを保持する。そうすることで共同開発などでライブラリのバージョンの差異を防ぐ。
pod installを実行するとPodfile.lockにまだリストされていないライブラリの依存関係が解決される。
最初だけ使用するコマンドだとおもっていたけど、追加や更新のときもinstallするんですね。
pod update
CocoaPods はにリストされているバージョンを考慮せずpod update PODNAMEに、ポッドの更新されたバージョンを見つけようとする。Pod を可能な限り最新のバージョンに更新する。
Pod名を指定せずに実行するpod updateはリストにあるすべてのPodを可能な限り最新バージョンに更新する。
いつもpod update だけ使用しているけど、特定のライブラリをupdateできるみたい。
インストールについて
CocoaPodsはbrewでもgemでもインストールすることができる。
どちらもインストールしてるとうまく動かないことがあり、当初brewでインストールしていたけど公式はgemでのインストールを案内してたので、gemのインストールに切り替えた。
今動いているpodが、brewでいれたものかどうかは、pathをみればわかる。
$which pod
PodfileとPodfile.lock
Podfileは「ライブラリのバージョン指定などをするファイル」です。
Podfile.lockは「ロック(固定)されたバージョンの情報が格納されているファイル」です。.lockファイルは、pod initやpod install時に書き換えられる。
Podfile.lockをGit管理することで、共同開発するときのバージョン差異をふせぐことができます。わかりやすく説明してる記事がありました。
この記事が気に入ったらサポートをしてみませんか?