将 pod 文件升级到新 swift 版本时出错

Error when upgrade pod file to new swift version

我的 Xcode 有错误:

SWIFT_VERSION '5.0' is unsupported, supported versions are: 3.0, 4.0, 4.2.(in target 'SwiftyJSON')
 SWIFT_VERSION '5.0' is unsupported, supported versions are: 3.0, 4.0, 4.2. (in target 'Eureka')
SWIFT_VERSION '5.0' is unsupported, supported versions are: 3.0, 4.0, 4.2. (in target 'XLPagerTabStrip')

我发现我应该升级我的 swift 语言版本,但是当我更新时显示这个错误:

这是我的 podfile 内容:

platform :ios, '12.1'

target 'Questers' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for Questers

pod 'SwiftyJSON'
pod 'TextFieldEffects'
pod 'Alamofire'
pod 'XLPagerTabStrip'
pod 'Eureka' 
pod 'Charts'
pod 'Floaty'
pod 'SVProgressHUD'
pod 'iOSDropDown'
pod 'Firebase/Core'
pod 'Firebase/Auth'
pod 'Firebase/Database'
pod 'Firebase/Messaging'
pod 'MessageKit'
pod 'MessageInputBar'

    target 'QuestersUITests' do
    inherit! :search_paths
    pod 'Firebase'
end

结束

错误清楚地表明 Swift 编译器版本 5.0 设置为 SwiftyJSON,'Eureka','XLPagerTabStrip' pods.

解决方案一:

简直

  1. Select 来自您工作区的 Pods 项目
  2. Select 来自项目目标的上述 pod。
  3. 在构建设置下搜索 Swift 语言版本并将其更新为 3.0、4.0 或 4.2。

对所有 3 个 pod 目标重复步骤 2-3。

将特定于 pod 的配置设置到 podfile。

post_install do |installer|
    installer.pods_project.targets.each do |target|
        if target.name == 'Material'
            target.build_configurations.each do |config|
                config.build_settings['SWIFT_VERSION'] = '4.2'
            end
        end
    end
end

方案二:

如果 pods 使用 Swift 5.0 语言功能,在这种情况下上述解决方案将不起作用。因此,将您的 XCode 更新到包含 Swift 5.0 API 的版本 10.2。 或者从 Swift 5.0

手动下载工具链

将您的 Xcode 更新为 10.2 或在 pod 中手动设置版本如下

pod 'Eureka',  '~> 4.3.1'

当您将 pod 保存在 podfile 中时,cocoapods 会安装最新版本的库。 你的情况,最新的版本写在Swift5,但是你的xcode不支持Swift5,安装lib的pod版本必须设置为支持的版本swift.