Как использовать устаревшую систему сборки с Xcode 10 'xcodebuild'?

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

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

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

Ответ 1

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

Ответ 2

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

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

Ответ 3

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

В XCode перейдите к: Файл → Настройки проекта (или Настройки рабочего пространства) → Построить систему

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

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

Ответ 4

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

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

enter image description here

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

enter image description here

Ответ 5

ШАГ 1: - Выберите настройку проекта enter image description here

ШАГ 2: - Изменить систему сборки: - "Устаревшая система сборки". enter image description here

ШАГ 3: - Очисти и собери проект, он у меня сработал !! :)

Ответ 6

Откройте Xcode → File → Settings Workspace → Change Legacy build Setting.