2017-07-19 88 views

回答

14

最後我得到它的工作:我所要做的就是把這個腳本Podfile的末尾:

post_install do |installer| 
    installer.pods_project.targets.each do |target| 
     target.build_configurations.each do |config| 
      config.build_settings['SWIFT_VERSION'] = '3.2' 
     end 
    end 
end 
0

設置雨燕4.0,除了框架所有的這些目標要雨燕3.2

這就是我正在做的一個項目

+0

也與我一起工作。但是您需要每次按下構建才能生效,並且錯誤消息將消失。 –

9

如果您使用寫在斯威夫特4一些豆莢,但有些是雨燕3.2,這裏是你可以指定他們SWIFT_VERSION價值的方式:

swift_32 = ['Pod1', 'Pod2', 'Pod3'] # if these pods are in Swift 3.2 
swift4 = ['Pod4', 'Pod5', 'Pod6'] # if these pods are in Swift 4 

post_install do |installer| 

    installer.pods_project.targets.each do |target| 
     swift_version = nil 

     if swift_32.include?(target.name) 
      swift_version = '3.2' 
     end 

     if swift4.include?(target.name) 
      swift_version = '4.0' 
     end 

     if swift_version 
      target.build_configurations.each do |config| 
       config.build_settings['SWIFT_VERSION'] = swift_version 
      end 
     end 

    end 

end 
+2

這應該是公認的答案,因爲它允許修訂,因爲庫已更新到Swift 4. – MandisaW

7

項目導航>選擇「窗格」>選擇Swift 3.2 Pod>'Build Settings'>向下滾動,然後在'Swift Compiler - Language section'中將Swift Language Version設置爲3.2。

在執行此操作時,Xcode將顯示一個Buildtime問題。它會要求你將Pod的源代碼轉換成Swift 4.不要那樣做。點擊該問題>取消選中「提醒我」>點擊「稍後轉換」。

項目導航

Project Navigator

構建設置

Build Settings

+2

迄今爲止最簡單的答案(Y) –

+0

我喜歡這個答案,你好嗎? – fullMoon

7

這是一種較詳細的方式來設定你需要3.2艙體,並留下所有其他在4.0

post_install do |installer| 
    installer.pods_project.targets.each do |target| 
     if ['AirMapSDK', 'PhoneNumberKit', 'Lock', 'RxSwift', 'RxSwiftExt', 'RxCocoa', 'RxDataSources', 'ProtocolBuffers-Swift'].include? target.name 
      target.build_configurations.each do |config| 
       config.build_settings['SWIFT_VERSION'] = '3.2' 
      end 
     end 
    end 
end 

J最後修改if語句中的數組。一切將默認爲4.0

相關問題