जवाबों:
सुनिश्चित करें कि आपके पास CocoaPods का नवीनतम संस्करण स्थापित है। $ pod update POD
हाल ही में पेश किया गया था।
अधिक जानकारी के लिए इस समस्या को देखें :
$ फली अद्यतन
जब आप चलाते हैं
pod update SomePodName
, तो कोकोआ पॉड्स के अपडेटेड संस्करण को खोजने का प्रयास करेंगे, बिना सूचीबद्ध किए गए संस्करण को ध्यान में रखे बिनाPodfile.lock
। यह पॉड को नवीनतम संस्करण में अपडेट करेगा (जब तक यह आपके पॉडफाइल में संस्करण प्रतिबंधों से मेल खाता है)।यदि आप बिना किसी पॉड के नाम के पॉड अपडेट चलाते हैं, तो कोकोआपोड आपके पॉडफाइल में सूचीबद्ध प्रत्येक पॉड को नवीनतम संस्करण में अपडेट करेगा।
$ pod update SomePodName
। हालांकि, कुछ मामले हैं जहां कोकोआपोड अन्य पॉड्स की निर्भरता को अपडेट करने का भी प्रयास करेंगे। छोटी कहानी, कुछ पॉडपनाम एकमात्र ऐसी फली नहीं है जो कुछ मामलों में अपडेट हो जाएगी।
pod install
इसे चलाता हूं तो यह अपने मूल संस्करण पर वापस लौट आता है। लेकिन मैं अपने बदलावों को खोना नहीं चाहता
pod update
सब कुछ छूता है। यह टिन पर जो कहता है वह नहीं करता है, और यह बहुत निराशाजनक है। अन्य पॉड्स से बेतरतीब ढंग से हेडर निकालता है जिसे आपने स्पर्श करने के लिए नहीं कहा है, आदि
मौजूदा पॉड्स को अपडेट किए बिना एकल पॉड स्थापित करने के लिए-> उस पॉड को अपने पॉडफाइल में जोड़ें और उपयोग करें:
pod install --no-repo-update
एक विशिष्ट पॉड उपयोग को हटाने / अपडेट करने के लिए:
pod update POD_NAME
परीक्षण!
इसलिए क्योंकि pod update SomePod
कोकोपॉड्स के नवीनतम संस्करणों में सब कुछ छूता है, मुझे एक वर्कअराउंड मिला।
अगले चरणों का पालन करें:
निकालें SomePod
सेPodfile
Daud pod install
पॉड्स अब SomePod
हमारे प्रोजेक्ट से और Podfile.lock
फाइल से हट जाएंगे ।
वापस रख SomePod
मेंPodfile
pod install
फिर से दौड़ो
इस बार हमारे पॉड का लेटेस्ट वर्जन इनस्टॉल और सेव होगा Podfile.lock
।
pod update somepod anotherpod thirdpod
एक साथ कई पॉड्स अपडेट करने के लिए भी कर सकते हैं :)
SomePod
इसकी नवीनतम निर्भरता के लिए अद्यतन किया जाता है तो क्या यह नवीनतम की साझा निर्भरता को अद्यतन नहीं करेगा anotherPod
? क्या ऐसा नहीं होगा जो पोडलॉक में हो? अन्यथा यह की आवश्यकताओं को पूरा करने में सक्षम नहीं होगाSomePod
बस केह रहा हू:
pod install
- नई फली लगाने के लिए,
pod update
- मौजूदा पॉड्स को अपडेट करने के लिए,
pod update podName
- अन्य फली को छूने के बिना केवल विशिष्ट फली को अद्यतन करने के लिए,
pod update podName versionNum
- अन्य पॉड्स को छूने के बिना विशिष्ट पॉड को अपडेट / डाउनलोड करने के लिए
pod
इसके बजाय आपका मतलब था git
?
बस एक छोटा सा नोटिस।
pod update POD_NAME
यह पॉड पहले से स्थापित होने पर ही काम करेगा। अन्यथा आपको उन सभी को अपडेट करना होगा
pod update
आदेश
pod install
पहले का उपयोग कर सकते हैं , जो दूसरों को छूने के बिना केवल लापता (एस) को स्थापित करेगा। हालाँकि आपके द्वारा स्थापित नहीं की गई पॉड को अपडेट करने के लिए कोई उपयोग मामला नहीं है, क्या वहाँ है?
टीएल; डॉ। उपयोग:
pod update podName
क्यों? नीचे दिया गया पढ़ें।
pod update
सम्मान नहीं करेंगे podfile.lock
। यह इसे ओवरराइड करेगा।pod install
सम्मान करेंगे podfile.lock
यह आरेख मतभेदों को बेहतर ढंग से समझने में मदद करता है:
बड़ी समस्या ~>
उर्फ आशावादी ऑपरेटर की है ।
Podfile
पर्याप्त नहीं हैकुछ लोग सोच सकते हैं कि उनके पॉड्स के सटीक संस्करणों को निर्दिष्ट करके Podfile
, जैसे pod 'A', '1.0.0'
, यह गारंटी देने के लिए पर्याप्त है कि प्रत्येक उपयोगकर्ता का टीम के अन्य लोगों के समान संस्करण होगा।
फिर वे pod update
एक नए फली जोड़ते समय भी उपयोग कर सकते हैं , यह सोचकर कि अन्य पॉड्स को अपडेट करने का जोखिम कभी नहीं होगा क्योंकि वे एक विशिष्ट संस्करण में तय किए गए हैं Podfile
।
लेकिन वास्तव में, यह गारंटी देने के लिए पर्याप्त नहीं है कि हमारे ऊपर के परिदृश्य में user1 और user2 को हमेशा उनके सभी पॉड्स का सटीक समान संस्करण मिलेगा।
एक विशिष्ट उदाहरण है अगर फली A
में फली पर निर्भरता है A2
- A.podspec
जैसा कि घोषित किया गया है dependency 'A2', '~> 3.0'
। ऐसे मामले में, 'A', '1.0.0'
अपने पॉडफाइल में पॉड का उपयोग करना वास्तव में user1 और user2 दोनों को हमेशा पॉड ए के संस्करण 1.0.0 का उपयोग करने के लिए मजबूर करेगा, लेकिन:
A2
संस्करण में पॉड के साथ समाप्त हो सकता है 3.4
(क्योंकि A2
उस समय का नवीनतम संस्करण था)pod install
बाद में प्रोजेक्ट में शामिल होने के दौरान चलाता है , तो उन्हें A2
संस्करण में पॉड मिल सकता है 3.5
(क्योंकि A2
संभव है कि अनुचर इस बीच एक नया संस्करण जारी कर सकता है)। इसीलिए प्रत्येक टीम के सदस्य को प्रत्येक कंप्यूटर के सभी पॉड के समान संस्करणों के साथ काम करना सुनिश्चित करने का एक ही तरीका है, Podfile.lock
और उचित रूप से pod install
बनाम का उपयोग करना pod update
।उपर्युक्त अंश पॉड इन्स्टॉल बनाम पॉड अपडेट से लिया गया था
मैं यह देखने की भी अत्यधिक सलाह देता हूं कि क्या करता podfile.lock
है
मैं पूरी तरह से काम कर रहा हूं cocoapods version 1.0.1
और उपयोग कर रहा हूं pod update name-of-pod
। कोई अन्य पॉड्स अपडेट नहीं किए जाते हैं, बस आपके द्वारा दर्ज किया गया विशिष्ट।
यह एक हद तक थोड़ा सा है और ओपी के साथ जो व्यवहार किया गया था, वह होने की संभावना नहीं है, लेकिन pod update <podname>
सभी मामलों में काम नहीं करेगा यदि आप अपने कंप्यूटर पर स्थानीय पॉड का उपयोग कर रहे हैं।
इस स्थिति में, केवल एक चीज जो pod update
काम करने के लिए ट्रिगर होगी यदि पॉडस्पेक फ़ाइल में कोई परिवर्तन हो। हालांकि, एक बदलाव करने की भी अनुमति होगीpod install
काम करने की ।
इस स्थिति में, आप केवल एक अक्षर द्वारा विवरण या सारांश जैसे कुछ मामूली को संशोधित कर सकते हैं, और फिर आप इंस्टॉल या अपडेट कमांड को सफलतापूर्वक चला सकते हैं।
podfile.lock
है। लिंक और वीडियो देखें जो इसे संदर्भित करता है।