2016-07-27 7 views
5

मैं मैं क्या मान में लिखे कोड का एक प्रकाश राशि के साथ एक परियोजना है का उपयोग करता है के साथ Xcode8 का उपयोग करते हुए तेजी से 2.3 यह होता है और एप्लिकेशन एक्सटेंशन का भी तेजी से 2.3 में लिखा और 2 Cocoapods का उपयोग करता है। एक्सकोड 8.3 बीटा डाउनलोड करने के बाद, माइग्रेटर भाग गया और मुझे SwiftyJSON में निहित एक मुख्य स्विफ्ट फ़ाइल में लगभग 100 कंपाइलर त्रुटियों के साथ छोड़ दिया गया है।एक तेज 2.3 परियोजना cocoapods

मूल रूप से मैं जानना चाहता हूं कि क्या मैं इन विवरणों के अनुसार Xcode8 में काम कर सकता हूं। मुझे स्विफ्ट 3 पर अपना कोड अपडेट करने में प्रसन्नता हो रही है, हालांकि मैं कोकोपोड्स को नियंत्रित नहीं करता हूं (एमएम वर्महोल उद्देश्य-सी में है इसलिए मुझे लगता है कि एक्सकोड यह बदलता है कि स्विफ्ट के किसी भी संस्करण के लिए इसे किसी भी कंपाइलर त्रुटियों को छोड़ने की आवश्यकता नहीं है)। क्या मैं वैश्विक स्तर पर स्विफ्ट 2.3 का उपयोग करने के लिए एक्सकोड बता सकता हूं?

उत्तर

0

वर्कस्पेस शुरू करते समय मेरे अनुभव से, एसडीके से आपको पूछना चाहिए कि क्या आप अपना कोड स्विफ्ट 3 में कनवर्ट करना चाहते हैं या इसे "बाद में" करना चाहते हैं। बस बाद में चुनकर, यह आपके कोड को तेज़ करने के लिए माइग्रेट नहीं करेगा 3. मुझे आपको चेतावनी देना चाहिए कि मैं एक ही चीज़ से गुजर चुका हूं और पीछे की तरफ काम करना लगभग असंभव था क्योंकि आप नवीनतम और महानतम एक्सकोड 8. का उपयोग करना चाहते हैं। आखिरकार जब आप ऐप स्टोर पर धक्का देने के लिए तैयार हों तो समस्याएं चलेंगी और iTunesConnect संस्करण 10 से कम की किसी भी फाइल को स्वीकार नहीं करेगा। साथ ही जब और यदि कोई अन्य डेवलपर आपके कोड को विरासत में लेता है, तो उन्हें समस्या होगी एक्सकोड के पहले संस्करण का उपयोग कर रहे हैं।

+0

मैं प्रवास बटन बेसब्री से उपयोग किया और पाया कि यह असंभव नहीं तो डी-माइग्रेट करने के लिए मुश्किल है, यह देखते हुए कि आप में प्रतिबद्ध नहीं किया है एक सुविधाजनक हालिया समय .. –

2

कई खुले स्रोत स्विफ्ट परियोजनाओं में स्विफ्ट 3 या स्विफ्ट 2.3 के लिए शाखाएं हैं (एक लोकप्रिय दृष्टिकोण के विवरण के लिए this post देखें)। मैंने स्विफ्टजसन की जांच की और ऐसा लगता है कि स्विफ्ट 3 के लिए एक शाखा है, इसलिए आप अपने ऐप को स्विफ्ट 3 में बदल सकते हैं और इसे आज़मा सकते हैं। आदेश में इसका इस्तेमाल करने के लिए, करने के लिए अपने Podfile में SwiftyJSON प्रविष्टि बदलने के लिए:

pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git', :branch => 'swift3' 

यह तो यह वास्तव में काम नहीं कर रहा हो सकता है, प्रत्येक Xcode 8 बीटा के लिए अद्यतन करने के लिए परियोजना पर निर्भर है, लेकिन यह संभावना है कि वहाँ होगा 100 से कम त्रुटियों से कम हो।

नोट: आप सबकुछ अपडेट करने और शिकायत त्रुटियों को ठीक करने के बाद "लीगेसी स्विफ्ट भाषा संस्करण का उपयोग करें" त्रुटि देख सकते हैं। इसे आपके पॉडफाइल पर post_install चरण जोड़कर (this GitHub issue देखें), या कोकोपोड्स 1.1.0.beta.1 या उच्चतर (gem install cocoapods --pre) को अपडेट करके तय किया जा सकता है।

6

में SWIFT 2.3 कोड का उपयोग करने के लिए आपको Use Legacy Swift Language Version से YES पर सेट करना होगा। फिर इसे अपने Podfile में जोड़ें ताकि आपके सभी पॉड लक्ष्य इसकी पुष्टि कर सकें।

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

मुझे आशा है कि इससे मदद मिलेगी।

+3

यह – Cyrus

+0

पर ऐसा लगता है और 'अंत' यह वास्तव में उपयोगी था। धन्यवाद! – speedynomads

0

अपने Podfile के अंत में निम्नलिखित जोड़ें तो चलाने pod install:

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