杏z学習帳

Swiftを中心にFlutterやらUnityなどに手を出してます

Fabricを導入してる状態でArchiveするとコケる(2019/10/17)

[Xcode]Fabricを導入してる状態でArchiveするとコケる

ざっくりまとめ。

です。

環境

問題

Archive を実行するとコケる。

error: Info.plist Error Unable to process Info.plist at path /Users/....../MyApp.app/Info.plist
This could be a timing issue, make sure the Fabric run script build phase is the last build phase and no other scripts have moved MyApp.app from the location Xcode generated it. You can also add '$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)' as an "Input Files" dependency for your Fabric run script build phase.

という感じのログが吐かれる。
パスは適当に省略してますが。

これはタイミングの問題で、Fabric run script が実行されるときに App の Info.plist が移動とかされてないか確認しろとか。
$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH) を Input Files に設定しろとか言うてます。

回避

先に書いておきますが、一応回避できましたがこれは、works for me かもしれないのであしからず(笑)

Fabric導入手順に $(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH) の記述はあるのでもちろんこれは設定してます。
ので、これをどうこうという話はスルー。

で、のこるのが実行タイミングどーのこーのです。
Archive がコケた状態で Info.plist が見つからないんだけど?といわれているディレクトリを見てみると、
Info.plist どころか MyApp.app すらない状態でした。
まだ .app が作られてないような状態です。

この状態から推測したのが、Fabric run script の実行タイミングが早いのでは?ということです。

ググっていくと、scriptの実行タイミングを変えると回避できたとか、15秒まってから実行するようにしたら回避できたというものがありました。
ということで、とりあえず実行順序を最後にしてみたところ、このエラーはでなくなりました。
実行順序はXcode上でドラッグ・アンド・ドロップで最後の方に持っていけばokです。

最初はBitriseの環境がなにかおかしいのかな?とか思っていましたが、
久しぶりに(笑)ローカルでもArchiveしてみると同じように発生したので検証がしやすくて助かりました✨

参考