2016-01-04 10 views
14

मैं वर्तमान में एक पुस्तकालय देख रहा हूं जो केवल पैकेज प्रबंधक के रूप में कार्थेज का समर्थन करता है। जिस परियोजना को मैं इसे एकीकृत करना चाहता हूं उसके साथ पहले से ही कुछ कोकोपोड निर्भरताएं हैं। क्या किसी ने एक ही समय में इन दोनों प्रबंधकों का उपयोग करने की कोशिश की है?उसी परियोजना में कार्थेज और कोकोपोड का उपयोग

यह मुझे एक बुरा विचार के रूप में मारता है, लेकिन मुझे यह सुनना अच्छा लगेगा कि यह अभ्यास में है या नहीं।

उत्तर

18

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

कार्थेज की आवश्यकता है कि आप मैन्युअल रूप से किसी प्रोजेक्ट में ढांचे को जोड़ दें जिसका अर्थ है कि आप शायद किसी भी साझा निर्भरता को जोड़ने और कोकोपोड द्वारा जोड़े गए ढांचे पर भरोसा करने से दूर हो सकते हैं, लेकिन आपको दो निर्भरता में निर्भरता संस्करण समाधान नहीं मिलेगा प्रबंधकों और यह स्पष्ट नहीं होगा कि यह सब कैसे काम करता है।

इसके साथ, कोई अंतर्निहित कारण नहीं हैं कि आप दोनों का उपयोग क्यों नहीं कर सकते हैं, और यदि पुस्तकालय में आप शामिल करना चाहते हैं तो इसमें कुछ या कोई निर्भरता नहीं है, तो संभवतः लाइब्रेरी को शामिल करने के बजाय कार्थेज का उपयोग करना बेहतर है एक सबमिशन या यहां तक ​​कि स्रोत को कॉपी करना।

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

+0

यह बहुत कुछ है जो मैंने पाया ... मैंने दोनों प्रबंधकों से एक साथ डीपीएस स्थापित करने की कोशिश की, और किसी भी समस्या में भाग नहीं लिया। लेकिन मैंने कार्थेज-लाइब्रेरी के लिए एक पॉडस्पेक बनाया, क्योंकि मैं अपने डेप को एक तरह से संभालना पसंद करूंगा। –

+0

इसके अतिरिक्त - यदि आपके रेपो में पॉडफ़ाइल है और आप ट्रैविस-सीआई का उपयोग करते हैं, तो ट्रेविस मान लेगा कि आप फली को इंस्टॉल करना चाहते हैं, भले ही आप इसे अपने .travis.yml में ऐसा करने के लिए स्पष्ट रूप से नहीं बताते हैं। यदि आपके पास अभी है .podspec हालांकि, ट्रेविस के साथ कोई समस्या नहीं है कि आपने इसे 'कार्थेज अपडेट - प्लेटफ़ॉर्म ' चलाने के लिए सेट किया है। –

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