xcode continuous-integration xcodebuild xcode10

¿Cómo puedo usar el sistema de compilación heredado con `xcodebuild` de Xcode 10?



xcode 10 system requirements (2)

Hay un indicador (hasta el momento no documentado) en xcodebuild : -UseModernBuildSystem=<value> . El valor puede ser 0 o NO para usar el sistema de compilación heredado ("original"), o 1 o YES para usar el nuevo sistema de compilación.

Por ejemplo:

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

( -UseNewBuildSystem=<value> también funciona; estas marcas se introdujeron en Xcode 9, pero sospecho que UseModernBuildSystem será la bandera "oficial" para esto).

Me gustaría usar el nuevo sistema de compilación de Xcode 10 para el desarrollo, pero nuestra compilación en nuestro sistema de integración continua falla ya que el xcarchive producido tiene un problema: a la lista Info.plist en xcarchive le falta la clave ApplicationProperties y la información que contiene.

Resulta que volver a cambiar el sistema de compilación heredado soluciona esto. Esto se puede hacer en la configuración del área de trabajo (Archivo> Configuración del área de trabajo ...> Crear sistema). Pero preferiría mantener el nuevo sistema de compilación para el desarrollo y solo usar el sistema de compilación heredado para las compilaciones de CI.

¿Hay alguna manera de hacer que xcodebuild use el sistema de compilación heredado sin modificar el área de trabajo?


Para ampliar la answer de DarkDust, en caso de que estés usando fastlane para compilaciones automatizadas, se pueden pasar parámetros adicionales como UseModernBuildSystem través de xcargs :

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