Chcę główny moduł mojego iOS skompilować Swift 4.0, podczas gdy moduł CocoaPods kompiluje Swift 3.Jak zbudować projekt Xcode 9 za pomocą Swift 4.0 za pomocą kapsuł w Swift 3?
PS: Korzystanie Xcode 9 beta 2.
Chcę główny moduł mojego iOS skompilować Swift 4.0, podczas gdy moduł CocoaPods kompiluje Swift 3.Jak zbudować projekt Xcode 9 za pomocą Swift 4.0 za pomocą kapsuł w Swift 3?
PS: Korzystanie Xcode 9 beta 2.
Wreszcie dostałem go do pracy: Wszystko co musiałem zrobić, to umieścić ten skrypt w końcu 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
zestaw Swift 4.0 dla wszystkich celów z wyjątkiem tych ram, które powinny być Swift 3.2
to co mam obecnie robi w projekcie
Jeśli używasz kilka strąków napisane w Swift 4, ale niektóre są Swift 3.2, oto sposób można określić wartość SWIFT_VERSION dla nich
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
To powinna być zaakceptowana odpowiedź, ponieważ umożliwia jej aktualizację, ponieważ biblioteki są aktualizowane na Swift 4. – MandisaW
projektowe Navigator> wybierz „Pods”> Wybierz Swift 3.2 Pod> "Ustawienia kompilacji"> Przewiń w dół, a następnie ustaw Swift Language Version na 3.2 w sekcji "Kompilator Swift - sekcja Język".
W ten sposób Xcode pokaże jeden problem z Buildtime. Poprosi cię o konwersję kodu źródłowego strąków na Swift 4. Nie rób tego. Kliknij ten problem> Odznacz "Przypomnij mi"> kliknij "Konwertuj później".
Projekt Navigator
Ustawienia Zbuduj
Najprostsza odpowiedź do tej pory (Y) –
Uwielbiam tę odpowiedź, yo ma man – fullMoon
Tu jest o wiele mniej gadatliwy sposób ustawić strąków musisz 3.2 i zostawić wszystkie inne 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 zmodyfikuj tablicę w instrukcji if. wszystko inne domyślnie będzie ustawione na 4.0
również ze mną. ale za każdym razem trzeba naciskać kompilację, aby uzyskać efekt, a komunikat o błędzie zniknie. –