Конфликт версий Swift: этот SDK не поддерживается компилятором — используется параметр BUILD_LIBRARY_FOR_DISTRIBUTION. В чем может быть проблема?

Я создаю статическую библиотеку Swift с помощью:

  • Xcode 13.2 (компилятор Swift 5.5.2)
  • Цель развертывания iOS 12.0
  • Сборка библиотеки для распространения ДА
  • Пропустить установку НЕТ
  • Язык Swift версии 5 и попытка с 4.2. Зависимость, управляемая с помощью CocoaPods:
  • Джапкс 3.0.0
  • Аламофайр 5.2.2
  • RxSwift

Когда я пытаюсь добавить его в проект iOS с этой настройкой:

  • Xcode 13.3 (компилятор Swift 5.6)
  • Цель развертывания iOS 12.0
  • Версия языка Swift 5 и попытка с 4.2 и сборкой. Я получаю эту ошибку:
      Failed to build module 'LibraryX'; this SDK is not supported by the compiler (the SDK is built with 'Apple Swift version 5.5.2 effective-4.2 (swiftlang-1300.0.47.5 clang-1300.0.29.30)', while this compiler is 'Apple Swift version 5.6 effective-4.2 (swiftlang-5.6.0.323.62 clang-1316.0.20.8)'). Please select a toolchain which matches the SDK.

Это заголовки в .swiftinterface

      // swift-interface-format-version: 1.0
// swift-compiler-version: Apple Swift version 5.5.2 effective-4.2 (swiftlang-1300.0.47.5 clang-1300.0.29.30)
// swift-module-flags: -target arm64-apple-ios12.0 -enable-objc-interop -enable-library-evolution -swift-version 4.2 -enforce-exclusivity=checked -Onone -module-name LibraryX

Очевидно, что если я создам проект с той же версией компилятора или создам библиотеку с проектом iOS, все будет работать нормально. Но цель здесь — выпустить предварительно скомпилированную библиотеку, а не ее исходный код.

Каждый раз, когда я ищу эту ошибку в Интернете, я нахожу «Вы должны установить для библиотеки сборки для распространения значение Да».

Я попытался добавить исходный код статической библиотеки в новый проект Framework, но получил тот же результат.

1 ответ

У меня также была эта ошибка, в моем случае мне не удалось импортировать подзависимость моего XCFramework во время чтения файла .swiftinterface, однако показывала эту абсолютно вводящую в заблуждение ошибку.

После многократной очистки DerivedData и попытки использовать разные версии Xcode (13.0, 13.4.1) я увидел 2 ошибки: «этот SDK не поддерживается компилятором» и «Нет модуля с именем« AnotherLib »», который был неправильно указанная зависимость внутри моего пакета Swift.

Итак, может быть, только первая часть сообщения верна "Не удалось собрать модуль "LibraryX"", но причина в чем-то другом, а НЕ в разнице версий компилятора.

Другие вопросы по тегам