2016-11-09 9 views
0

В настоящее время я устанавливаю наследие в Podfile в SWIFT_VERSION = 2.3, но некоторые из библиотек, которые я использую, являются Swift 3.0, что означает, что я необходимо вручную установить наследие для всех Swift 3.0 pods legacy to No на каждом pod install. Как настроить каждую версию модуля в установщике Podfile?Как установить Legacy Swift Version для каждого Pod в Podfile Xcode 9.0 Swift 3.2/Swift 4.0

Это то, что я устанавливаю:

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

Если я устанавливаю config.build_settings['SWIFT_VERSION'] = '3.0', чем у нас есть проблемы с Swift 2.3 стручков. Лучшее решение - установить каждую версию устаревшего кода, чтобы избежать необходимости вручную ее устанавливать.

ответ

5

Я нашел во время поиска, как установить SWIFT_VERSION 3.2 для Xcode 9.

Используя AirMapSDK, который сам и несколько зависимостей нужно 3.2 вместо 4.0 Ниже приведен пример того, как установить стручок конкретные SWIFT_VERSION для других что может столкнуться с этим вопросом.

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 

Вы можете изменить массив if, чтобы указать, какой модуль вам нужен, чтобы установить версию.