Xcode 12: компиляция для iOS 10.0, но модуль ‘RxSwift’ имеет минимальную цель развертывания iOS 12.0

#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 большего размера, чем минимальная. Только модуль, который вы создаете