Xcode 10.2, Swift 5, команда compileSwift завершилась неудачно при сборке программы с помощью Release Scheme - PullRequest
16 голосов
/ 26 марта 2019

Я использую Xcode 10.2, Swift 5.

При использовании схемы Debug проблем не возникает, но при использовании схемы Release при сборке или архивировании он показывает, что команда compileSwift завершилась неудачно с ненулевым кодом завершения.

Я попытался удалить DerivedData / Clean / pod deintegrate & pod install & pod update. Ни одна из этих работ.

enter image description here enter image description here

Ответы [ 6 ]

7 голосов
/ 29 марта 2019

Для моего проекта проблема была связана с pod Cache, который выдает ошибку, когда Optimization Level для Release установлено на Optimize for Speed [-O]. Я снова установил Compilation Mode на Whole Module и установил уровень оптимизации для модуля в файле модуля:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    # Cache pod does not accept optimization level '-O', causing Bus 10 error. Use '-Osize' or '-Onone'
    if target.name == 'Cache'
      target.build_configurations.each do |config|
        level = '-Osize'
        config.build_settings['SWIFT_OPTIMIZATION_LEVEL'] = level
        puts "Set #{target.name} #{config.name} to Optimization Level #{level}"
      end
    end
  end
end

Ссылка: https://github.com/hyperoslo/Cache/issues/233#issuecomment-477749560

5 голосов
/ 26 марта 2019

Я исправил эту проблему, перейдя в Pods Project , затем в настройки здания и установив Режим компиляции в Инкрементальный для Выпуск .Затем почистите и заархивируйте, затем скомпилируйте нормально.

1 голос
/ 31 марта 2019

Мне пришлось установить «Уровень оптимизации» в «Компиляторе Swift - Генерация кода» на «Выпуск» - «Без оптимизации [-Onone]» из «Оптимизация по скорости», чтобы Кэш проходил Архив.

То же самое с SwiftyBeaver

Кажется, проблема связана с Xcode 10.2. Кроме того, кажется, что другие проекты с пакетом также подходят для оптимизации, например, Toucan или XCGLogger.

1 голос
/ 28 марта 2019

У меня была такая же проблема после обновления до Xcode 10.2. После выполнения шагов ниже это сработало для меня:

  1. Обновление модулей
  2. Очистить папку проекта
  3. Изменить версию проекта Swift Language на Не указано и (в соответствии с предложением @Neil Faulkner) Режим компиляции на Инкрементный
1 голос
/ 26 марта 2019

Итак, у меня возникла та же проблема при обновлении моего проекта до Swift 5. По какой-то причине Cocoapods (последняя версия, 1.6.1) установили SWIFT_VERSION некоторых модулей в Swift 5, даже если они выпущены как модули Swift 4, 4.1, 4.2. Поэтому мне пришлось добавить скрипт после установки, который установит корректирующую версию swift примерно так:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    if target.name == 'CryptoSwift' || target.name == 'SwiftyBeaver'
      target.build_configurations.each do |config|
        config.build_settings['SWIFT_VERSION'] = '4.2'
      end
    end
  end
end
0 голосов
/ 26 марта 2019

Вы можете выполнить следующие действия ...

  1. Обязательно смените версию Swift на текущую версию.
  2. Обновите все свои модули.
  3. Очистите всепроизводные данные XCode.
  4. Теперь перезагрузите ваш Mac.

Вы получаете все эти ошибки только из-за модулей .. так что вам нужно обновить каждый модуль, который вы используете.

...