2017-07-19 22 views

Trả lời

14

cuối cùng tôi đã nhận nó để làm việc: Tất cả tôi phải làm là đặt kịch bản này vào cuối 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

Set Swift 4.0 cho tất cả các mục tiêu ngoại trừ khuôn khổ đó mà nên Swift 3.2

đó là những gì tôi đang làm trong một dự án

+0

cũng hoạt động với tôi. nhưng bạn cần phải nhấn xây dựng mỗi lần để có hiệu lực và thông báo lỗi sẽ biến mất. –

9

Nếu bạn đang sử dụng một số vỏ quả viết bằng Swift 4, nhưng một số Swift 3.2, đây là cách bạn có thể chỉ định giá trị SWIFT_VERSION cho họ:

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

Đây phải là câu trả lời được chấp nhận, vì nó cho phép sửa đổi khi thư viện được cập nhật lên Swift 4. – MandisaW

7

Project Navigator> Chọn 'Pods'> Chọn Swift 3.2 Pod> 'Build Settings'> Cuộn xuống và sau đó thiết lập Swift Language Version thành 3.2 trong 'Swift Compiler - Language section'.

Khi thực hiện việc này, Xcode sẽ hiển thị một vấn đề về Thời gian tạo. Nó sẽ yêu cầu bạn chuyển đổi mã nguồn của các nhóm thành Swift 4. Đừng làm điều đó. Nhấp vào vấn đề đó> Bỏ chọn 'Nhắc tôi'> Nhấp vào 'Chuyển đổi sau'.

Project Navigator

Project Navigator

Build Cài đặt

Build Settings

+2

Câu trả lời dễ nhất cho đến nay (Y) –

+0

Tôi yêu câu trả lời này, yo ma man – fullMoon

7

Dưới đây là một cách xa ít tiết để thiết lập kén bạn cần phải 3.2 và để lại tất cả những người khác tại 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 ust sửa đổi mảng trong câu lệnh if. mọi thứ khác sẽ mặc định là 4.0

Các vấn đề liên quan