Xcode 8 beta 4: сборка завершается неудачно с помощью & ldquo; в следующих двоичных файлах используются несовместимые версии Swift: & rdquo; ошибка

^ двоичный (как в base-2) xor, а не возведение в степень (которое недоступно в качестве Java-оператора). Для экспоненциальности см. Java.lang.Math.pow ().

29
задан iGA 8 August 2016 в 16:52
поделиться

11 ответов

Прежде чем что-то делать ...

(Если вы можете использовать Xcode 8.0-совместимый с вашим проектом)

По умолчанию ваш проект настроен на Xcode 3.2-совместимый

  • Выберите проект приложения в Навигатор (слева)
  • Выберите Документ проекта на панели Утилиты (справа)
  • Измените Формат проекта на Xcode 8.0-совместимый

Попробуйте построить свой проект.

Если это не сработает, попробуйте другие предложенные решения.

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

Рекомендация: перед отладкой существующего проекта. Закройте ваш проект и заархивируйте копию файла вашего проекта, если вы не создали Git-репозиторий при создании проекта.

7
ответ дан ShakeMan 8 August 2016 в 16:52
поделиться

У меня была такая же проблема. Моим решением было переименовать каталог «myApp» в «myAppmyApp», а затем я снова запустил приложение. Создан новый каталог myApp, и приложение снова отлично работает на моем iPhone.

Разница в вашей ситуации может заключаться в следующем: имя моего приложения, скажем, «myApp» в каталоге «DerivedData», было связано с myApp: «-»

Может быть, это поможет вам.

1
ответ дан S Shahid 8 August 2016 в 16:52
поделиться

У меня было то же сообщение об ошибке после добавления версии фреймворка Swift 3.

Моя цель framework search path все еще была настроена на поиск версий swift 2 и swift 3 одной и той же платформы, поэтому мой проект застрял на версии swift 2.3.

Для меня решение состояло в том, чтобы удалить старую платформу из каталога моего проекта и удалить ссылку на ее папку из framework search path.

0
ответ дан vmeyer 8 August 2016 в 16:52
поделиться

У меня была та же проблема, но мне удалось ее исправить :

  • Закрыть проект и выйти из Xcode.
  • Очистить производные данные.
  • Откройте проект снова, и он там, все хорошо и работает.
    1. Я сделал это на Xcode 8, используя Swift 3.

    67
    ответ дан ossmalpha 8 August 2016 в 16:52
    поделиться

    Я исправил это, удалив встроенные двоичные файлы в проекте. Для этого:

    1. Откройте рабочее пространство / проект в Xcode.
    2. Перейдите к фактическому файлу проекта (с лентой «Общие», «Возможности» и т. Д.).
    3. Перейдите в «Общие»> «Встроенные двоичные файлы», удалите их, выбрав те из них, которые вам не нужны, и затем нажмите знак «минус».

    Примечание 1. Вам не нужно удалять их из раздела «Связанные фреймворки и библиотеки» (они должны автоматически удаляться при удалении их из «Встроенных двоичных файлов»).

    Примечание 2: у меня много зависимостей, и я использую CocoaPods. У меня ничего нет во «Встроенных двоичных файлах» и только «Pods_ [YourApplicationName] .framework» в разделе «Связанные фреймворки и библиотеки».

    4
    ответ дан Clayton J Roberts 8 August 2016 в 16:52
    поделиться

    У меня была такая же проблема после обновления Xcode до 9.3. Я исправил проблему, просто очистив папку сборки. Вы можете сделать это с помощью Command-Option-Shift-K или в меню параметров «Продукт» -> «Очистить» (см. Скриншот)

    You can clean the build folder with Command-Option-Shift-K or in the option menu "Product" -> "Clean"

    5
    ответ дан Samir 8 August 2016 в 16:52
    поделиться

    Вам необходимо переключить все зависимости на swift 3. В вашем случае Alamofire нужно переключить на Swift 3 ветку

    0
    ответ дан Martin Romañuk 8 August 2016 в 16:52
    поделиться

    Вы также можете получить эту проблему, если у вас есть сценарий кода вашего контейнера приложения Swift 2.3, и вы создаете новое расширение в Xcode 8.

    Чтобы решить вышеупомянутый сценарий ...

    Примечание: Весь код должен быть в одной и той же быстрой (совместимой) версии для компиляции без сбоев.

    При этом, одним из способов решения этой проблемы является , придерживаясь Swift 2.3 , а затем устанавливая для вашей цели расширения Использовать Legacy Swift Language Version значение «Да» .

    Вы можете найти эту опцию, когда Xcode 8 открыт, следующим образом:

    1. Выберите корень проекта вашего приложения в Навигаторе проектов (слева)
    2. На вкладке с правой стороны выберите расширение в разделе TARGETS
    3. . После выбора расширения нажмите вкладку Настройки сборки
    4. Прокрутите вниз и найдите Использовать Legacy Swift Language Version и установите его в Да из его раскрывающегося меню.
    5. Теперь вы можете построить проект

    Примечание: Возможно, вам придется исправить переопределенный код в шаблонах расширений, поскольку они изначально были в Swift 3.

    17
    ответ дан iAmcR 8 August 2016 в 16:52
    поделиться

    У меня были различные библиотеки, интегрированные через Carthage. Однако во время этого процесса я переключил некоторые из них на cocoapods и забыл удалить старый файл .frameworks из цели проекта.

    Удаление их решило ошибку сборки.

    2
    ответ дан ph1lb4 8 August 2016 в 16:52
    поделиться

    Только что это всплыло после обновления до Xcode 10.2 ... один из моих модулей использует Swift. Исправлено было:

    pod repo update
    rm -rf Pods
    pod install
    
    -1
    ответ дан David Hersey 8 August 2016 в 16:52
    поделиться

    Так что я просто выкладываю решение, найденное мной после часа отладки.

    Начиная с Xcode 9 , это может быть отслежено журналом компилятора.

    Если вы прокрутите вниз до конца журнала компилятора, вы обнаружите, что эта проблема вызвана сбоем проверки типов.

    enter image description here

    0
    ответ дан Zigii Wong 8 August 2016 в 16:52
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: