it-swarm.com.de

Wie kann ich das Legacy Build System mit Xcode 10 `xcodebuild` verwenden?

Ich möchte das neue Buildsystem von Xcode 10 für die Entwicklung verwenden, aber unser Build in unserem kontinuierlichen Integrationssystem schlägt fehl, da die erzeugte xcarchive ein Problem aufweist: Der Info.plist in der xcarchive enthält den ApplicationProperties-Schlüssel und die darin enthaltenen Informationen!

Es stellt sich heraus, dass das Umschalten auf das alte Build-System dies behebt. Dies kann in den Arbeitsbereichseinstellungen (Datei> Arbeitsbereichseinstellungen…> System erstellen) erfolgen. Ich würde es jedoch vorziehen, das neue Buildsystem für die Entwicklung zu behalten und nur das alte Buildsystem für CI-Builds zu verwenden.

Gibt es eine Möglichkeit, xcodebuild das veraltete Build-System zu verwenden, ohne den Arbeitsbereich zu ändern?

24
DarkDust

In xcodebuild: -UseModernBuildSystem=<value> gibt es ein (noch nicht dokumentiertes) Flag. Der Wert kann entweder 0 oder NO sein, um das alte ("ursprüngliche") Erstellungssystem zu verwenden, oder 1 oder YES, um das neue Erstellungssystem zu verwenden.

Zum Beispiel:

xcodebuild -workspace Foo.xcworkspace -scheme Bar -configuration Release -archivePath /path/to/Foo.xcarchive clean archive -UseModernBuildSystem=NO

(-UseNewBuildSystem=<value> scheint auch zu funktionieren; diese Flaggen wurden in Xcode 9 eingeführt, aber ich vermute, dass UseModernBuildSystem die "offizielle" Flagge dafür sein wird.)

49
DarkDust

Um DarkDusts answer zu erweitern, falls Sie fastlane für automatisierte Builds verwenden, können zusätzliche Parameter wie UseModernBuildSystem durch xcargs übergeben werden:

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

So wählen Sie das Buildsystem von Xcode 10 aus:

Gehen Sie in Xcode zu: Datei -> Projekteinstellungen (oder Arbeitsbereichseinstellungen) -> System erstellen

Von dort aus können Sie New Build System (Default) oder Legacy Build System auswählen.

Hoffe, diese Hilfe macht das einfacher.

5
CrazyOne

Ändern Sie das Build-System von Legacy Build System in New Build System und umgekehrt.

Xcode öffnen -> Datei wählen -> Arbeitsbereich-Einstellungen auswählen

 enter image description here

Ändern Sie Build System in Legacy Build System von New Build System -> Klicken Sie auf Fertig.

 enter image description here

0
iOS