解決Xcode9 Swift4下Cocoapods編譯Swift第三方時報錯

LinXunFeng發表於2017-09-22

隨著Xcode9 Swift4 的到來,一些小問題也接踵而至。許多優秀的Swift第三方框架還未來得及迎接Swift4的到來,它們還停留在swift3.x的狀態,這個時候新建一個專案,使用cocoapods寫上需要使用的第三方,一編譯就是滿屏紅,如下圖。

報錯
報錯

所幸,蘋果每次升級Xcode都會保留上個版本的swift,以防暴亂?~~

有兩種解決方案
其本質都是控制編譯時所使用的Swift版本

第一種:Xcode

Pods -> Targets -> SnapKit -> Build Settings -> Swift language version option
選擇 Swift 3.2。不推薦使用該方法,一個個點效率有些低~~

Pods
Pods

第二種:使用Cocoapods控制

開啟Podfile檔案,新增並按需要修改下方程式碼來指定哪些第三方的Swift編譯版本,接著來一次

pod install複製程式碼

最後再來一下編譯就搞定了

post_install do |installer|
    # 需要指定編譯版本的第三方的名稱
    myTargets = ['ObjectMapper', 'SnapKit']

    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複製程式碼

位置如圖所示

Cocoapods
Cocoapods

相關文章