7
4

Xcode10以降でBuild PhasesのRun ScriptでInfo.plistが加工できない

Last updated at Posted at 2019-04-09

Build PhasesでInfo.plistの動的変更

APIやmBaasを環境により向き先変更をする場合、環境ごとにSchemeを用意しScriptで変更する方法はよく用いられる方法だと思います。またInfo.plistに定義するBundle IdentifierやDisplay Nameなどを環境ごとに変えたり、開発環境やモックサーバーへの接続のためのATS設定切り替えにも昔から利用されています。

Xcode10で期待通り、Info.plist変更用、Scriptが動作しない

Xcode10で突然2回目以降のbuildでplutil,plistbuddyなどが期待動かなくなりました。
そのため、Clean Build Folder -> Buildというステップを踏む必要が出ていました。

Preprocessed-Info.plistの挙動

1.Build PhasesのShellScriptは問題なく実行される
2.Preprocessed-Info.plistは変更される
3.Build完了時に、Preprocessed-Info.plistが変更前に戻る
4.変更前の状態でInfo.plistとしてパッケージングされる。

対応方法

各RunScriptのInput Filesの項目に
${TEMP_DIR}/Preprocessed-Info.plist
を設定。
スクリーンショット 2019-04-10 0.07.45.png

その他

  • Build Phase ScriptでPreprocess Info.plistを利用する場合は Build SettingsでPreprocess Info.plist FileをYESにする
7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4