はじめに
CocoaPods
はiOSアプリエンジニアであれば誰もが知るライブラリ管理ツールだと思いますが、
v1.7.0
以降では xcfilelist
を Input/Output File Lists
で指定できるようになりました。
( CocoaPods Blog – CocoaPods 1.7.0 Beta! )
Input/Output File Lists
とはXcode10で追加された Input / Output Files
に代わる、
xcfilelist
をパスとして指定できる新たな枠組みです。
既に v1.8.4
までリリースされており、Xcodeも11まで上がっているので今更感はありますが、気になったので少し具体的に差分を見てみました。
CocoaPodsのバージョン比較のためにPodfileを用意
CocoaPods
の『 v1.7.0
未満のバージョン』と『 v1.7.0
以上のバージョン』で比較するため、 Podfile
を用意します。
因みに、今回の比較で利用したそれぞれのバージョンは下記の通りです。
v1.7.0
未満のバージョン:v1.6.1
v1.7.0
以上のバージョン:v1.8.4
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
それでは早速比較をしてみましょう。
v1.6.1の場合
まずは v1.6.1
の方で pod install
を実行してみます。
インストール完了後、 Xcode
の対象ターゲットから Build Phases
> [CP] Embed Pods Frameworks
を開いてみましょう。
設定状態は、
- 実行シェルスクリプトとして、
"${PODS_ROOT}/Target Support Files/Pods-HogeHogeSample/Pods-HogeHogeSample-frameworks.sh"
が指定されている Input Files
とOutput Files
にそれぞれパスが指定されている
となっています。
v1.8.4の場合
次に v1.8.4
の方で pod install
を実行してみます。
同じく Build Phases
> [CP] Embed Pods Frameworks
を開いてみましょう。
設定状態は、
- 実行シェルスクリプトとして、
"${PODS_ROOT}/Target Support Files/Pods-HogeHogeSample/Pods-HogeHogeSample-frameworks.sh"
が指定されている Input File Lists
とOutput File Lists
にそれぞれパスが指定されている
となっています。
比較結果
比較してみると、
v1.6.1
で利用していた Input / Output Files
から v1.8.4
では Input / Output File Lists
に変わっていることがわかると思います。
この Input / Output File Lists
で指定されているファイルの中身を見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
結果、これまで Input / Output Files
にベタッと指定していたパスと同じであることがわかると思います。
因みに、上記中身が記載された xcfilelist
はプロジェクト自体には組み込まれていません。
ファイルからパスが読み取れさえすれば問題ないので、そのままなのでしょう。
ただし、 Git
で xcworkspace
も管理する場合は、
この xcfilelist
も Git
にアップロードする必要がありますので注意しましょう。
(プロジェクト内でファイル指定されているので、存在しないとビルドが通らなくなります。)
まとめ
CocoaPods
自体が優秀なため、バージョンアップして pod install
を実行することで、
自動的に整合性を取ってくれるはずなので、意識する必要はそんなにないかもしれません。
しかし、こうした変更を理解しておくことで、開発中の想定外の差分に気づけたりすることもあります。
知っておいて損はないことなので、細かいところも注視していけると良いな〜というところで本日はここまで。