web-dev-qa-db-ja.com

Xcode 10の `xcodebuild`でレガシービルドシステムを使用するにはどうすればよいですか?

Xcode 10の新しいビルドシステムを開発に使用したいのですが、生成されるxcarchivexcarchiveInfo.plistという問題があるため、継続的インテグレーションシステムでのビルドが失敗しますApplicationPropertiesキーとその中の情報が欠落しています!

レガシービルドシステムに戻すと、これが修正されます。これは、ワークスペースの設定([ファイル]> [ワークスペースの設定…]> [ビルドシステム])で実行できます。しかし、新しいビルドシステムを開発用に保持し、CIビルドにはレガシービルドシステムのみを使用することを希望します。

ワークスペースを変更せずにxcodebuildにレガシービルドシステムを使用させる方法はありますか?

47
DarkDust

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がこの「公式」フラグになると思われます。)

73
DarkDust

DarkDustの answer を拡張するには、自動ビルドにfastlaneを使用している場合、UseModernBuildSystemなどの追加パラメーターxcargsを介して渡すことができます:

build_app(
   // ... other necessary parameters,
   xcargs: "-UseModernBuildSystem=NO"
)
26
niko.mikulicic

Xcode 10のビルドシステムを選択するには:

Xcodeで、ファイル->プロジェクト設定(またはワークスペース設定)->ビルドシステムに移動します。

そこからNew Build System (Default)またはLegacy Build Systemを選択できます

このヘルプがこれを簡単にすることを願っています。

16
CrazyOne

ビルドシステムをLegacy Build SystemからNew Build Systemに、またはその逆に変更します。

Xcodeを開く->ファイルを選択->ワークスペース設定を選択

enter image description here

ビルドシステムを新しいビルドシステムからレガシービルドシステムに変更-> [完了]をクリックします。

enter image description here

12
iOS