XcodeGenのちょっとしたTips
XcodeGenの地味なTipsについてまとめました。
XcodeGenのBuild Configurationsの階層について
XcodeGenのビルド設定は以下の階層になっています。これを最初に知っておくとスムーズです。
公式ドキュメントの目次の構成がproject.ymlの構成のそれなので、そのまま参考にすると良いかと思います。
# Project全体の設定
settings:
# Projectの全Build Configurationsに反映される設定
base:
# Projectの各Build Configurationごとの設定
configs:
Debug:
<中略>
# Targetごとの設定
targets:
{Target名}:
# Targetの全Build Configurationsに反映される設定
base:
# Targetの各Build Configurationごとの設定
configs:
Debug:
cacheを利用する
xcodegen --use-cache
でXcodeGenのキャッシュが効くようになります。
キャッシュファイルは --cache-path
のオプションで指定しない限り、~/.xcodegen/cache/{xcodeprojファイルのpathのMD5ハッシュ値}
に保存されます。
- ファイル構成(追加・削除)
- project.yml
に変更がない場合、キャッシュが効きます。
実際は、一時的に生成したcacheファイルと実在するキャッシュを比較して差分がなければ何もしない処理になってます。
キャッシュの判定処理はここ
project生成後に何かしらのコマンドを実行する
postGenCommand
のオプションで指定ができます。(例えばpod install
など)
これと上記のキャッシュを利用すると、ローカルのproject構成に変更がない場合、xcodegenコマンドも実行されないし、合わせてpod installも実行されないので省エネです。
例えばgit checkoutを頻繁に繰り返す時など地味にこの設定が効くと思います。
※公式でもオススメされてます (https://github.com/yonaskolb/XcodeGen/blob/master/Docs/FAQ.md#can-i-use-cocoapods)
options:
postGenCommand: pod install
一部の値だけBuildConfig間で共有する
単純にprojectファイルを編集する場合だと複数のターゲットでコピペが発生してしまうところを、Setting Groups
やTarget Template
など使って、共通化できる点もXcodeGenの魅力かと思います。
それ以外にもyamlの記法を使って一部のパラメータだけ共有するようなこともできます。
例えばyamlのアンカー記法を使うと変数を参照するような書き方もできます。
ATarget:
CURRENT_PROJECT_VERSION: &a_build_number 1
<中略>
BTarget:
CURRENT_PROJECT_VERSION: *a_build_number
他にも何かあれば追記します。
Author And Source
この問題について(XcodeGenのちょっとしたTips), 我々は、より多くの情報をここで見つけました https://qiita.com/hirothings/items/76c6b756658701218328著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .