今回Buildが一発でできない壁にぶつかった
Embedded Frameworkをレイヤーごとに新設して、当該のページをリファクタしながらメインターゲットのボリュームを減らしていった。
なのだけれど、メインターゲットをBuildしようとしても新設したFrameworkがないよーと怒られて失敗する。。
Schemeを各FrameworkのTargetに変更してBuildしておけば、メインターゲットのBuildは成功するが、Build時間削減と名前空間の整理がしたかったから導入したのに、逆にbuild作業が煩雑になる結果に。。。😇
うまく一発でBuildするには?
最初、run scriptで各Frameworkをbuildさせてから..とか思って探したけどそれ系の情報が出てこなかった..
途方に暮れながら、なんとなくBuild SettingとかBuild Phases辺りを見ていて、メインターゲットからはTarget DependenciesとかLink Binary With Librariesに使用するFrame workを設定していた。
が、Embedded FrameworkではTarget Dependenciesの指定はブランクになっていた👀
試しにEmbedded Framework同士の依存関係を元に各FrameworkのTarget DependenciesにEmbedded FrameworkのTargetを設定してみた。
その上で、メインターゲットを指定してBuildしたら…
成功!🎉🎉🎉
(Buildなげーなは言わないの。途中なの。)
まとめ
Embedded Frameworkを複数作成して利用する場合は、Framework同士の依存の関係も設定に反映させる必要があるということでした。
当然っぽいけど、気づけないとはまる。。信仰心が試されているっ🍎💪