web-dev-qa-db-fra.com

Comment utiliser le système de construction hérité avec `xcodebuild` de Xcode 10?

J'aimerais utiliser le nouveau système de compilation de Xcode 10 pour le développement, mais notre construction dans notre système d'intégration continue échoue car la variable xcarchive produite a un problème: le Info.plist de la xcarchive manque de la clé ApplicationProperties et des informations qu'il contient!

Il s'avère que revenir au système de construction hérité résout ce problème. Cela peut être fait dans les paramètres de l'espace de travail (Fichier> Paramètres de l'espace de travail…> Construire le système). Mais je préférerais conserver le nouveau système de génération pour le développement et utiliser uniquement le système de génération existant pour les générations CI.

Existe-t-il un moyen de rendre xcodebuild utiliser le système de construction hérité sans modifier l'espace de travail?

24
DarkDust

Il existe un indicateur (non encore répertorié) dans xcodebuild: -UseModernBuildSystem=<value>. La valeur peut être 0 ou NO pour utiliser le système de génération hérité ("original"), ou 1 ou YES pour utiliser le nouveau système de génération.

Par exemple:

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

(-UseNewBuildSystem=<value> semble fonctionner aussi bien; ce drapeau a été introduit dans Xcode 9 mais je soupçonne que UseModernBuildSystem sera le drapeau "officiel" pour cela.)

49
DarkDust

Pour étendre les answer de DarkDust, si vous utilisez fastlane pour des constructions automatisées, des paramètres supplémentaires tels que UseModernBuildSystem peuvent être passés par xcargs:

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

Pour sélectionner le système de compilation de Xcode 10:

Dans Xcode, accédez à: Fichier -> Paramètres du projet (ou Paramètres de l'espace de travail) -> Construire le système

De là, vous pouvez sélectionner New Build System (Default) ou Legacy Build System

J'espère que cette aide rend cela plus facile.

5
CrazyOne

Changez le système de compilation en Legacy Build System à partir de New Build System et vice versa.

Ouvrir Xcode -> Sélectionner un fichier -> Sélectionner les paramètres de l’espace de travail

 enter image description here

Changez le système de construction en système de construction hérité à partir du nouveau système de construction -> Cliquez sur Terminé.

 enter image description here

0
iOS