Tôi muốn mô-đun chính của ứng dụng iOS của tôi để biên dịch Swift 4,0 trong khi mô-đun CocoaPods biên dịch nhanh chóng 3.Làm thế nào để xây dựng một dự án xcode 9 với Swift 4.0 bằng cách sử dụng Pods trong Swift 3?
PS: Sử dụng Xcode 9 beta 2.
Tôi muốn mô-đun chính của ứng dụng iOS của tôi để biên dịch Swift 4,0 trong khi mô-đun CocoaPods biên dịch nhanh chóng 3.Làm thế nào để xây dựng một dự án xcode 9 với Swift 4.0 bằng cách sử dụng Pods trong Swift 3?
PS: Sử dụng Xcode 9 beta 2.
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
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
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
Đâ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
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
Build Cài đặt
Câu trả lời dễ nhất cho đến nay (Y) –
Tôi yêu câu trả lời này, yo ma man – fullMoon
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ũ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. –