Xcode9 在Swift 4.0下编译时第三方框架报错Swift compiler Error的解决方案

更多原创文章,请访问:https://takioo.cn

随着 Xcode9 Swift 4.0 的到来,一些小问题也接踵而至。

 

许多优秀的 Swift 第三方框架还没有来得及迎接 Swift 4.0 的到来,它们还停留在 Swift3.x 的状态。

这个时候新建一个项目,使用cocoapods 引入所需的第三方,即使 pod install 成功后,一编译工程就是满屏红,

且报错 Swift compiler Error,如下图:

Xcode9 在Swift 4.0下编译时第三方框架报错Swift compiler Error的解决方案_第1张图片

不过所幸,苹果每次升级 Xcode 都会保留上个版本的 swift。

 

解决方案,控制编译时第三方框架所使用的 Swift 版本,有如下两种方法。

方法1. 在 Xcode 设置中手动为每个需要指定 swift 版本的第三方框架设置 swift 版本,如下图:

Xcode9 在Swift 4.0下编译时第三方框架报错Swift compiler Error的解决方案_第2张图片

方法2. 在podfile 文件中,使用 Cocoapods 控制 :

platform :ios, '9.0'
post_install do |installer|
    # 需要指定swift编译版本的第三方的名称
    myTargets = ['Charts','Moya']
    installer.pods_project.targets.each do |target|
        if myTargets.include? target.name
            target.build_configurations.each do |config|
                config.build_settings['SWIFT_VERSION'] = '3.2'
            end
        end
    end
end

use_frameworks!

target 'xxxx' do

pod 'IQKeyboardManager', '~>4.0.6'
pod 'JSONModel'
pod 'KVOController'
pod 'MagicalRecord'
pod 'Mantle'
pod 'MJRefresh'
pod 'Masonry'
pod 'Moya'
pod 'ReactiveSwift'
pod 'SDWebImage'
pod 'SwiftyJSON'
pod 'SDCycleScrollView'
pod 'Charts', '~> 3.0.1'

end

然后再 pod install 一下就可以了。

你可能感兴趣的:(iOS)