2017-07-19 9 views
16

मैं जबकि CocoaPods मॉड्यूल तेजी से संकलित मेरे iOS एप्लिकेशन के मुख्य मॉड्यूल स्विफ्ट 4.0 संकलित करने के लिए चाहते हैं 3.स्विफ्ट 3 में पॉड्स का उपयोग करके स्विफ्ट 4.0 के साथ एक एक्सकोड 9 प्रोजेक्ट कैसे बनाया जाए?

पुनश्च: Xcode 9 का उपयोग बीटा 2.

उत्तर

14

अंत में मैं यह काम करने के लिए मिल गया में कर रहा हूँ है:

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 
0123: सभी मैं करना था Podfile के अंत में इस स्क्रिप्ट डाल करने के लिए था
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

यह स्वीकार्य उत्तर होना चाहिए, क्योंकि यह संशोधन के लिए अनुमति देता है क्योंकि पुस्तकालयों को स्विफ्ट 4 में अपडेट किया जाता है। – MandisaW

7

परियोजना नेविगेटर> चुनें 'फलियाँ'> चुनें स्विफ्ट 3.2 पॉड> 'सेटिंग्स बनाएं'> नीचे स्क्रॉल करें और फिर स्विफ्ट भाषा संस्करण को स्विफ्ट कंपाइलर - भाषा अनुभाग 'में 3.2 पर सेट करें।

ऐसा करने पर, एक्सकोड एक बिल्डटाइम समस्या दिखाएगा। यह आपको फोड के स्रोत कोड को स्विफ्ट 4 में बदलने के लिए कहेंगे। ऐसा मत करो। उस समस्या पर क्लिक करें> 'मुझे याद दिलाएं' अनचेक करें> 'बाद में कनवर्ट करें' पर क्लिक करें।

परियोजना नेविगेटर

Project Navigator

बिल्ड सेटिंग

Build Settings

+2

अब तक का सबसे आसान उत्तर (वाई) –

+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 

जे अगर कथन में सरणी को संशोधित करें। बाकी सब कुछ 4.0

संबंधित मुद्दे