#ios #xcode #cocoapods #rx-swift
#iOS #xcode #cocoapods #rx-swift
Вопрос:
Я только что обновил Xcode до последней версии, и проект больше не компилируется. Я удалил все и попытался перестроить модули, но в итоге возникла та же проблема, что и в этом выпуске:
[x] /Users/alouanemed/Projects/App-iOS/Pods/_Probuild/Moya/Sources/RxMoya/MoyaProvider Rx.swift:2:8: компиляция для iOS 10.0, но модуль ‘RxSwift’ имеет минимальную цель развертывания iOS 12.0: /Users/alouanemed/Projects/App-iOS/Pods/build/Release-iphoneos/RxSwift/RxSwift.framework/Modules/RxSwift.swiftmodule/arm64-apple-ios.swiftmodule
импорт RxSwift ^
Ответ №1:
С cocoapods и Xcode 12 в настоящее время вам необходимо установить цели развертывания ваших модулей в так называемом «перехвате после установки».
Попробуйте добавить это в конец вашего Podfile:
deployment_target = '12.0'
post_install do |installer|
installer.generated_projects.each do |project|
project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = deployment_target
end
end
project.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = deployment_target
end
end
end
Комментарии:
1. Вау, я рвал на себе волосы с этим. Я использую Xcode 13.4.1, и это сработало для меня. Есть идеи, почему нам нужно это добавить?
2. Я просто списал это на особенность cocoapods и с тех пор перешел на использование SPM.
3. Это имеет смысл. Я переключился на SPM для новых проектов. В конечном итоге сделает то же самое для старых проектов.
Ответ №2:
Только для людей, которые могут оказаться в том же случае, что и я. Причиной этой ошибки было то, что я использовал beta
канал. После переключения на stable
канал я запустил
cd ios/
pod deintegrate
pod cache clean --all
cd ..
flutter clean
И я удалил Podfile
и Podfile.lock
. Затем я снова собрал проект, и он сработал!
Комментарии:
1. Я уже в третий раз нахожу этот ответ, и он полностью спасает мою задницу. Приветствия!
Ответ №3:
Вы привязываетесь к импорту версии RxSwift
, для которой уже установлена минимальная цель развертывания на iOS 12.0, в то время как сам ваш проект все еще находится на iOS 10.0.
Это не должно быть связано с Xcode или обновлением Xcode.
Если вы можете опубликовать свой Podfile, мы можем это проверить.
Комментарии:
1. Моя цель развертывания — 12
Ответ №4:
Вам нужно изменить минимальную цель развертывания, вы можете изменить ее Xcode
следующим образом (здесь я изменил ее на 11, в вашем случае вам нужно изменить ее на 12):
Комментарии:
1. P.s убедитесь, что для параметра сборки вашего модуля — Deployment Target — установлена версия ios большего размера, чем минимальная. Только модуль, который вы создаете