Следующие стручки интегрированы в цели, у которых нет той же версии Swift

Я обновляю свой проект до Swift 3. При обновлении некоторых моих кокаподов до быстрого 3 я получаю следующее сообщение в терминале после запуска установки pod:

 Analyzing dependencies
[!] The following pods are integrated into targets that do not have the same Swift version:

- AWSCore required by myApp (Swift 3.0.1), myApptests (Swift 3.0)
- AWSS3 required by myApp (Swift 3.0.1), myApptests (Swift 3.0)
- Alamofire required by myApp (Swift 3.0.1), myApptests (Swift 3.0)

Здесь есть длинный поток: https://github.com/CocoaPods/CocoaPods/issues/5864 о проблеме, и я попробовал предлагаемое решение, но когда я запускаю установку pod, я все равно получаю то же сообщение.

Вот мой файл подкачки:

введите описание изображения здесь

за пределами данной ссылки я не нашел многого в этом вопросе. У кого-то еще была такая же проблема? Любые решения? Я только что установил Xcode 8.1 и Swift 3.0.1 в минувшие выходные.

Ответ 1

Я только что решил недавнюю проблему, когда я обновил свой проект swift3 на swift4 один с Xcode9, проблема сказала: [!] The following pods are integrated into targets that do not have the same Swift version:

Appsee required by MyApp (Swift 4.0), MyAppUnitTest (Swift 3.0)... Allpods

Мое решение было таким: с моей главной целью MyApp с версией swift на 4.0 я также обновил свою версию UnitTest до 4.0 в Build SettingsSwift Language Version

Ответ 2

Я решил проблему следующим образом:

  • У меня было две цели: основной проект и цели тестирования.
  • В моей главной целевой программе была ссылка "Использовать устаревшую версию Swift Language" (в настройках сборки) на "Unspecified (3.0)".
  • Я установил "Использовать устаревшую версию Swift Language" в "Нет", и он работал нормально.

Ответ 3

Эта проблема ухудшается с Xcode 9, так как она поддерживает как версии версии 3.2, так и 4.0, но Cocoa Pods еще не поддерживает это:

[!] The following pods are integrated into targets that do not have the same Swift version:
- XCGLogger required by target1 (Swift 4.0), target2 (Swift 3.0)

Временное решение: временно переключите target1 в swift 3.2, установите Cocoa pods, а затем верните его в swift 4.0.

Ответ 4

Когда я открыл свой файл xcodeproj он отображал 3.2, но когда я запустил git diff, я заметил, что в project.pbxproj все было как Swift 3.0.

Обновление переменных SWIFT_VERSION до 3.2 с помощью текстового редактора позволило SWIFT_VERSION несоответствие.

Я рекомендую это только в крайнем случае!

Ответ 5

Для приложения CocoaPods v.1.1.1 эта проблема была решена путем установки Use legacy Swift Language Version в Unspecified в Build Settings для всех целей.

Вероятно, это ошибка приложения. У всех целей были одинаковые настройки, но приложение CocoaPods жаловалось только на один из них.

UPD: чтобы скомпилировать проект, мне пришлось изменить его с Unspecified на No

Ответ 6

У меня была проблема с одной целью с разницей от 3.0 до 3.0.1

Я решил это, вручную отредактировав файл проекта (project.pbxproj) и изменив 3.0; с 3.0.1;