Как я могу использовать устаревшую систему сборки с `xcodebuild` в Xcode 10? - PullRequest
0 голосов
/ 06 июля 2018

Я бы хотел использовать новую систему сборки Xcode 10 для разработки, но наша сборка в нашей системе непрерывной интеграции завершается неудачно, поскольку у xcarchive есть проблема: в Info.plist в xcarchive отсутствует ApplicationProperties ключ и информация в нем!

Оказывается, переключение обратно на устаревшую систему сборки исправляет это. Это можно сделать в настройках рабочего пространства («Файл»> «Настройки рабочего пространства»> «Создать систему»). Но я бы предпочел оставить новую систему сборки для разработки и использовать устаревшую систему сборки только для сборки CI.

Есть ли способ заставить xcodebuild использовать устаревшую систему сборки без изменения рабочего пространства?

Ответы [ 4 ]

0 голосов
/ 16 февраля 2019

Измените систему сборки на Legacy Build System с New Build System и наоборот.

Открыть Xcode -> Выбрать файл -> Выбрать настройки рабочего пространства

enter image description here

Изменение системы сборки на устаревшую систему сборки с новой системы сборки -> Нажмите Готово.

enter image description here

0 голосов
/ 14 ноября 2018

Чтобы расширить ответ DarkDust , в случае, если вы используете fastlane для автоматических сборок, дополнительные параметры, такие как UseModernBuildSystem, могут быть переданы через xcargs:

build_app(
   // ... other necessary parameters,
   xcargs: "-UseModernBuildSystem=NO"
)
0 голосов
/ 06 января 2019

Чтобы выбрать систему сборки Xcode 10:

В XCode перейдите к: Файл -> Настройки проекта (или Настройки рабочего пространства) -> Система сборки

Оттуда вы можете выбрать New Build System (Default) или Legacy Build System

Надеюсь, эта помощь облегчит это.

0 голосов
/ 06 июля 2018

В 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 будет «официальным» флагом для этого.)

...