अन्य डेवलपर्स के लिए एक फ्रेमवर्क या लाइब्रेरी का निर्माण कैसे करें, सुरक्षित तरीका? [बन्द है]


106

हमारे पास एक फ्रेमवर्क या लाइब्रेरी के लिए एक विचार है जो किसी भी आईओएस डेवलपर के लिए बहुत उपयोगी होगा। इसलिए हम ऐप डेवलपमेंट से फ्रेमवर्क / लाइब्रेरी डेवलपमेंट पर स्विच करने के बारे में गंभीरता से सोच रहे हैं।

लेकिन जब हम पुस्तकालय / ढांचे के लिए शुल्क लेना चाहते हैं, तो हमें किसी तरह कोड की रक्षा करनी चाहिए। हम इस तरह से एक फ्रेमवर्क का निर्माण कैसे कर सकते हैं कि हमारे ढांचे का उपयोगकर्ता स्रोत कोड नहीं देख सकता है, इसी तरह हम सेब के ढांचे के स्रोत कोड को कैसे नहीं देख सकते हैं? मैं केवल हेडर फ़ाइलों और कुछ अजीब यूनिक्स exe फ़ाइल को संकलित ढांचे के साथ शिप करता हूं, मुझे लगता है।

या यदि एक संकलित ढांचा / पुस्तकालय बनाना संभव नहीं है जो अन्य आईओएस डेवलपर्स हमारे स्रोत कोड को कॉपी और पेस्ट करने में सक्षम हुए बिना उपयोग कर सकते हैं, तो क्या उद्देश्य-सी कोड को बाधित करने का एक तरीका है?


22
Unix exe फ़ाइल :-)
बेसी

6
यदि आप वास्तव में iOS डेवलपर्स के लिए सहायक बनना चाहते हैं, तो इसे ओपन-सोर्स करें!
करण डेडेग्लू

4
@KanDedeoglu - दोनों परिदृश्यों में उपयोगकर्ताओं के लिए पेशेवरों और विपक्ष हैं। व्यक्तिगत रूप से, मैं एक यथोचित मूल्य-बंद स्रोत को पसंद करता हूं, सब कुछ अच्छी तरह से प्रलेखित, समर्थित है, और सिर्फ एक ओपन-सोर्स, असमर्थित और अनजाने ढांचे के लिए फ्रेमवर्क काम करता है। दुर्लभ ओपन-सोर्स फ्रेमवर्क है जो वास्तव में कहीं भी अच्छी तरह से प्रलेखित और सक्रिय रूप से बनाए रखा गया है।
आर्टऑफवर्फ

जवाबों:


113

हां, फ्रेमवर्क बनाना संभव है, इसलिए फ्रेमवर्क का उपयोगकर्ता स्रोत कोड नहीं देख सकता है।

इन लेखों को देखें (मैंने अतीत में चौखटे बनाने के लिए पहला प्रयोग सफलतापूर्वक किया है - बाद के लेख मूल के अपडेट हैं):

http://www.drobnik.com/touch/2010/04/making-your-own-iphone-frameworks/

http://www.drobnik.com/touch/2010/05/making-your-own-iphone-frameworks-in-xcode/

http://www.drobnik.com/touch/2010/10/embedding-binary-resources/

फ्रेमवर्क का उपयोग करने के लिए, आपके उपयोगकर्ता Xcode में .framework बंडल को खींचेंगे। वे उन हेडर फ़ाइलों को देख पाएंगे जिन्हें आप बंडल में कॉपी करते हैं (ऊपर दिए गए लेख देखें), लेकिन स्रोत नहीं (जैसा कि यह शामिल नहीं है - केवल संकलित आउटपुट बंडल में है)।

यह कोड वितरित करने का एक शानदार तरीका भी हो सकता है जो आपकी कंपनी के भीतर कई परियोजनाओं के लिए उपयोग किया जाता है।


अपडेट करें:

नीचे दिए गए लिंक को बिना पंख के देखें - यह हाल ही में और सभी एक पृष्ठ पर है: http://github.com/jverkoey/iOS-Framework । यह कई अन्य दृष्टिकोणों के साथ मुद्दों को भी देता है। यह वह मार्गदर्शिका है जिसका मैं अब अनुसरण करता हूं, यह याद रखने की कोशिश करता हूं कि एक नया ढांचा स्थापित करते समय क्या करना है। :)

अपडेट 2 (Xcode 6 रिलीज के साथ)

वहाँ एक विकल्प है, वास्तव में आप के लिए देख रहे हैं Universal Framework for iOS:!

क्या मेरा कोड दूसरों को दिखाई देगा? A: नहीं। यह फ्रेमवर्क एक संकलित बाइनरी निर्यात करेगा, इसलिए कोई भी इसके अंदर देख सकता है। आप कुछ अन्य फ़ाइलों के लिए भी ऐसा ही बना सकते हैं, जैसे XIBs।

मुझे इसकी आवश्यकता क्यों है? A: यह उन डेवलपर्स / टीमों के लिए है जो बिना अपना कोड साझा करना चाहते हैं, पूरे कोड (.m / .c / .cpp फ़ाइलें) को दिखाते हैं। इसके अलावा यह उन लोगों के लिए है जो संकलित कोड + संसाधनों (छवियों, वीडियो, ध्वनियों, XIBs, प्लिस्ट, आदि) को एक ही स्थान पर व्यवस्थित करना चाहते हैं। और यह उस टीम के लिए भी है जो एक ही बेस (फ्रेमवर्क) से ऊपर एक साथ काम करना चाहते हैं।

(c) http://blog.db-in.com/universal-framework-for-ios/


1
धन्यवाद दोस्त! इस चाल के कारण Apple किसी ऐप को अस्वीकार नहीं करेगा? क्या आपको वास्तव में ऐप स्टोर पर एक ऐप अप्रूव्ड मिला है जो इस तरह के फ्रेमवर्क का इस्तेमाल करता है?
प्राउड मेंबर

3
बस इस पर वापस आने के लिए, जैसा कि "अन्य लिंकर फ्लैग" बिल्ड सेटिंग में Xcode 4 -all_load linker ध्वज की आवश्यकता नहीं है। -ओबीजीसी आपको जरूरत का एकमात्र झंडा है।
डैनियल

आप सही डैनियल हैं, एलएलवीएम / क्लैंग के अधिक हाल के संस्करणों में से एक ने इसे निर्धारित किया है। धन्यवाद!
जे पेयर

IOS फ्रेमवर्क के लिए
गीथब

नोट: यदि आपके पास Xcode 4.5 है, तो आपको यहां दिए गए दस्तावेज़ के अनुसार ट्यूटोरियल के लिए एक छोटे से संशोधन की आवश्यकता होगी: stackoverflow.com/questions/13571080/…
लोलो


9

XCode 4 के लिए एक टेम्प्लेट भी है जो आपको iOS स्टेटिक फ्रेमवर्क प्रोजेक्ट्स बनाने देगा।


क्या आप ऐसी परियोजनाओं के बारे में जानते हैं जो इस पद्धति के साथ जारी की गई हैं?
टॉमन

नहीं, मैं नहीं। मैं एक पर काम कर रहा हूं जिसे हम इस तरह से जारी करने के बारे में सोच रहे हैं, लेकिन मुझे यकीन नहीं है कि हम अंत में क्या करेंगे।
ग्रेग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.