Xcode 10の新しいビルドシステムを開発に使用したいのですが、生成されるxcarchive
にxcarchive
のInfo.plist
という問題があるため、継続的インテグレーションシステムでのビルドが失敗しますApplicationProperties
キーとその中の情報が欠落しています!
レガシービルドシステムに戻すと、これが修正されます。これは、ワークスペースの設定([ファイル]> [ワークスペースの設定…]> [ビルドシステム])で実行できます。しかし、新しいビルドシステムを開発用に保持し、CIビルドにはレガシービルドシステムのみを使用することを希望します。
ワークスペースを変更せずにxcodebuild
にレガシービルドシステムを使用させる方法はありますか?
xcodebuild
には(まだ文書化されていない)フラグがあります:-UseModernBuildSystem=<value>
。値は、従来の(「オリジナル」)ビルドシステムを使用する場合は0
またはNO
、または新しいビルドシステムを使用する場合は1
またはYES
のいずれかです。
例えば:
xcodebuild -workspace Foo.xcworkspace -scheme Bar -configuration Release -archivePath /path/to/Foo.xcarchive clean archive -UseModernBuildSystem=NO
(-UseNewBuildSystem=<value>
も同様に機能するようです。このフラグはXcode 9で導入されましたが、UseModernBuildSystem
がこの「公式」フラグになると思われます。)
DarkDustの answer を拡張するには、自動ビルドにfastlaneを使用している場合、UseModernBuildSystem
などの追加パラメーターxcargs
を介して渡すことができます:
build_app(
// ... other necessary parameters,
xcargs: "-UseModernBuildSystem=NO"
)
Xcode 10のビルドシステムを選択するには:
Xcodeで、ファイル->プロジェクト設定(またはワークスペース設定)->ビルドシステムに移動します。
そこからNew Build System (Default)
またはLegacy Build System
を選択できます
このヘルプがこれを簡単にすることを願っています。