github - कोकोपोड्स और गिटहब कांटेदार




cocoapods git-fork (2)

एक अन्य विकल्प यह है कि आपका प्रोजेक्ट सीधे पॉड को संदर्भित करे, न कि जिथब के माध्यम से। इस तरह आपको अपने परिवर्तनों का परीक्षण करने के लिए केवल अपनी कांटा या प्रतिलिपि बनाने / पेस्ट करने की आवश्यकता नहीं है। आप एक साथ दो अलग-अलग एक्सकोड परियोजनाओं के साथ काम कर सकते हैं और अपनी संबंधित परियोजनाओं में अलग-अलग प्रतिबद्ध हो सकते हैं।

pod 'AFNetworking', :path => '~/Documents/AFNetworking'

कोकोपोड्स प्रलेखन: http://guides.cocoapods.org/using/the-podfile.html#using-the-files-from-a-folder-local-to-the-machine

यह मेरा पहला समय है कि गिटहब प्रोजेक्ट को तोड़ने वाला, और मैं कोकोपोड्स के साथ भी सक्षम नहीं हूं, इसलिए कृपया मेरे साथ भालू।

असल में, मैंने अपने Podfile में निम्न का उपयोग करके Podfile पर एक परियोजना को Podfile :

pod 'REActivityViewController', '~> 1.6.7', :git => 'https://github.com/<username>/REActivityViewController.git'

मैंने फिर कांटा में कुछ बदलाव किए, और निश्चित रूप से जब मैंने एक और pod install लिए एक pod install किया, तो उसने मूल REActivityViewController पुनर्स्थापित कर दिया और मेरे परिवर्तन मिटा दिए।

मुझे एहसास हो रहा है कि मुझे अपने फॉर्क्स को किसी अन्य pod install से पहले अपने फोर्क में धक्का देना है, लेकिन मैं यह कैसे कर सकता हूं कि यह कोकोपोड्स द्वारा स्थापित एक रेपो है? मैंने Pods फ़ोल्डर के तहत स्थापित REActivityViewController फ़ोल्डर में देखा और कोई गिट फ़ाइलें नहीं हैं I

क्या मुझे अपने प्रोजेक्ट के बाहर अपने कांटा पर काम करने की ज़रूरत है और फिर परिवर्तनों को स्थापित करने के लिए कोकोपोड का उपयोग करें? यह वर्कफ़्लो का बहुत बोझिल है।

या मुझे submodules के साथ कुछ करने की ज़रूरत है?


मैं एक उदाहरण का उपयोग कर इस सवाल का जवाब दूंगा। मेरे पास TTTAttributedLabel का एक कांटा है जो मैंने यहां जोड़ा है कुछ अतिरिक्त कार्यक्षमता के साथ:

https://github.com/getaaron/TTTAttributedLabel

कोकोपोड्स प्रोजेक्ट में इसका उपयोग करने के लिए, मैं:

  1. मेरे फोर्क में मेरे परिवर्तन पुश करें
  2. परिवर्तन और अद्यतन प्राप्त करने के लिए मेरे पॉडफाइल को कॉन्फ़िगर करें

एक बार जब आप अपने फोर्क में अपने बदलाव डाल देते हैं, तो अपने अंतिम प्रतिबद्धता के एसएचए प्राप्त करें। आप इसे git rev-parse origin/master | pbcopy का उपयोग करके कर सकते हैं git rev-parse origin/master | pbcopy या git rev-parse origin/master | pbcopy पर आपके प्रोजेक्ट के लिए पेज आता है :

फिर, आप अपने पॉडफाइल में अपने फोर्क पर विशिष्ट प्रतिबद्धता निर्दिष्ट कर सकते हैं:

pod 'TTTAttributedLabel', :git => 'https://github.com/getaaron/TTTAttributedLabel.git', :commit => 'd358791c7f593d6ea7d6f8c2cac2cf8fae582bc1'

उसके बाद, pod update इस विशेष प्रतिबद्धता को आपके कांटा से pod update करेगा। यदि आप चाहते हैं, तो आप अपने कांटा के लिए एक podspec भी बना सकते हैं, लेकिन मुझे यह दृष्टिकोण आसान लगता है और मैं नए वर्कफ़्लो को उचित ठहराने के लिए अक्सर परिवर्तन नहीं करता हूं।

क्या मुझे अपने प्रोजेक्ट के बाहर अपने कांटा पर काम करने की ज़रूरत है और फिर परिवर्तनों को स्थापित करने के लिए कोकोपोड का उपयोग करें? वर्कफ़्लो के बोझिल होने का यही तरीका है।

आप इसे इस तरह से कर सकते हैं, लेकिन मैं आमतौर पर:

  1. मेरे प्रोजेक्ट के अंदर कोड संपादित करें और सुनिश्चित करें कि यह काम करता है
  2. मेरे फोर्क में परिवर्तनों की प्रतिलिपि बनाएँ
    • एक पैच निर्यात, या
    • संपूर्ण स्रोत कोड फ़ाइल पर प्रतिलिपि बनाएँ
  3. गिटूब को प्रतिबद्ध और धक्का दें
  4. नए SHA के साथ Podfile अद्यतन करें
  5. pod update चलाएं।

या मुझे submodules के साथ कुछ करने की ज़रूरत है?

नहीं, आपको इसकी आवश्यकता नहीं है।







git-fork