Следующие стручки интегрированы в цели, у которых нет той же версии 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 Settings
→ Swift 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;