XcodeGen というのは、複数人で開発しているとよくコンフリクトする project.pbxproj を yaml から生成するように出来るツール。
XcodeGen 自体の説明とか、何が嬉しいかは、この記事を御覧ください
XcodeGen を既存のプロジェクトで使いたい場合になるべく簡単に移行する助けになればと思い、この記事を書いています。
新規プロジェクトで使いたい場合も、ある程度 Xcode 上で設定してから XcodeGen 使うようにするとかって場合にも助けになればと思います。
僕自身、さっき移行が完了したところなので、内容に不足があるかもしれないけどご了承ください。
1. 既存のプロジェクトの Build Settings を xcconfig に抜き出す
既存のプロジェクトの Build Settings を xcconfig に抜き出しましょう。
xcconfig-extractor で Build Settings を xcconfig に抜き出す を見てやってみてください。
xcconfig 自体は Xcode がサポートしている仕組みなので、やっぱり XcodeGen 使うの止めた!みたいな場合に戻りやすくなったりするメリットがあると思います。
あと、xcconfig-extractor という便利ツールのお陰で XcodeGen への移行が楽になる。
2. XcodeGen をインストールする
XcodeGen のインストール方法は XcodeGen/README.md#installing を御覧ください。
3. XcodeGen の設定ファイルを作る
設定例
name: XcodeGenExample
fileGroups:
- configs
configFiles:
Debug: configs/Debug.xcconfig
Release: configs/Release.xcconfig
targets:
XcodeGenExample:
type: application
platform: iOS
sources: XcodeGenExample
configFiles:
Debug: configs/XcodeGenExample-Debug.xcconfig
Release: configs/XcodeGenExample-Release.xcconfig
settings:
CURRENT_PROJECT_VERSION: 1
scheme:
testTargets:
- XcodeGenExampleTests
dependencies:
- carthage: Realm
- carthage: RealmSwift
XcodeGenExampleTests:
type: bundle.unit-test
platform: iOS
sources: XcodeGenExampleTests
configFiles:
Debug: configs/XcodeGenExampleTests-Debug.xcconfig
Release: configs/XcodeGenExampleTests-Release.xcconfig
dependencies:
- target: XcodeGenExample
XcodeGenExample って書いてあるところとか、 dependencies を自分のアプリの設定見て適切に設定すれば大丈夫なはず。
4. ドキュメントを読む
3 で例示した設定だと足りない部分も出てくると思うので、ドキュメントを読みつつ設定をアップデートする。
5. 生成する
$ xcodegen
📋 Loaded spec:
Name: XcodeGenExample
Targets:
📱 application: XcodeGenExample
📱 unitTestBundle: XcodeGenExampleTests
⚙️ Generated project
💾 Saved project to XcodeGenExample.xcodeproj
設定できてれば xcodeproj が生成される。
あとは pod install
とか carthage bootstrap
とかして、ビルド通るかとか確認して問題無さそうなら終わり。
6. 動かない
- ドキュメントを読んで頑張る
- XcodeGen 使用前のプロジェクトを見て、 project.yml に書き忘れてるものが無いか確認する
- 頑張る
以上です。
ハマったらエラーログと一緒に Qiita に記事を書くと同じハマり方した人が嬉しいです!