Встроенная сборка в стиле Xcode 10.2 GNU отключена

#ios #xcode

#iOS #xcode

Вопрос:

Сегодня, после обновления Xcode и установки обновления macOS, появились ошибки, которых раньше не было.

И мое приложение расширения Watch теперь содержит ошибки:

Встроенная сборка в стиле GNU отключена:введите описание изображения здесь
введите описание изображения здесь

  • Не удалось собрать модуль ‘_Builtin_instrinsics’
  • Не удалось собрать модуль ‘simd’
  • Не удалось собрать модуль ‘SceneKit’
  • Не удалось собрать модуль ‘WatchKit’

Я пока не нашел ответов, почему это произошло. На устройствах это работает нормально. Симулятор даже не собирается.

Приложения используют watchOS 2.0 и iOS 9.0.

Ответ №1:

В вашей целевой цели расширения WatchKit (или любой другой цели, на которую он жалуется), добавьте -fgnu-inline-asm в Other C Flags параметры сборки. Вам нужно будет подать радар, так как это выглядит как ошибка.

Комментарии:

1. большое вам спасибо за это решение! Кто-нибудь открывал radar? Если кто-нибудь знает, пожалуйста, предоставьте ссылку, чтобы перейти по ней

2. @intthy Нет способа следить за радаром, поскольку Apple не сообщает вам, кто был другим заявителем. Вам все равно придется отправить им отчет об ошибке, чтобы они отнеслись к нему серьезно. Было бы неплохо отметить этот ответ как правильный 🙂

Ответ №2:

Удаление пользовательского Enable Bitcode параметра сборки ( ENABLE_BITCODE ) в целевом расширении WatchKit может решить проблему.

Все watchOS и tvOS принудительно включают Bitcode, ваши пользовательские настройки сборки приведут к ошибке Xcode 10.2 (игнорировалась до Xcode 10.1). на iOS это необязательно, и macOS не поддерживается.

Часто причиной ошибки является то, что вы устанавливаете это значение в настройках сборки xcconfig или на уровне проекта. Правильный способ установки битового кода в целевой версии iOS — это изменить настройку сборки только на уровне Tarfet (или записать xcconfig с фильтром SDK)

Комментарии:

1. Это не очень хорошее решение, вы хотите, чтобы в ваших приложениях был включен Bitcode, чтобы воспользоваться преимуществами нескольких оптимизаций после доставки и последующей обработки. Более того, WatchKit здесь всего лишь один пример — я видел, как это происходило и с моими фреймворками.