2013-07-10 5 views
47

मैं इस बारे में कई लेख पढ़ा है, और मैं सिर्फ अगर मैं इस सही ढंग से समझ देखना चाहते हैं:एक निजी एपीआई वास्तव में क्या है, और यदि ऐप्पल का उपयोग किया जाता है तो ऐप्पल आईओएस ऐप को क्यों अस्वीकार कर देगा?

एप्पल यदि आप एक निजी एपीआई का उपयोग अपने अनुप्रयोग को अस्वीकार कर देंगे ...

  1. क्या है "निजी एपीआई" और "गैर-निजी एपीआई" के बीच मुख्य अंतर?

  2. क्या "गैर-निजी" एपीआई केवल ऐप्पल द्वारा प्रदान किए गए और सत्यापित किए गए एपीआई हैं?

  3. एक API सिर्फ एक फ्रेमवर्क के साथ बातचीत करने का एक तरीका नहीं है, और एक फ्रेमवर्क सिर्फ समझाया वर्गों/हेडर है कि लोगों को तुच्छ प्रयोजनों के लिए उपयोग कर सकते हैं का एक सेट है?

  4. क्या इसका मतलब यह नहीं है कि मैं अपने ऐप में किसी के कोड (ऐप्पल के अलावा) का पुन: उपयोग नहीं कर सकता?

  5. यदि यह सच है, जब भी कोई प्रोग्रामर अपनी खुद की कस्टम कक्षाएं और विधियों को बनाता है, तो क्या वह तकनीकी रूप से अपने विशिष्ट उद्देश्य के लिए मिनी फ्रेमवर्क तैयार नहीं कर रहा है? तो इसका मतलब यह नहीं होगा कि वह अपने निजी एपीआई का उपयोग कर रहा है?

  6. मेरी कक्षाओं/विधियों के साथ किसी और के वर्ग/विधियों का उपयोग करने के बीच अंतर क्या होगा, वे अंतर कैसे बता सकते हैं, और यह एक समस्या क्यों होगी?

इस बात का मेरे समझ बेतुका लगता है, और विश्वास नहीं करते मैं समझ रहा हूँ कि एक "निजी एपीआई" सही ढंग से है। मैंने पढ़ा है कि यह एपीआई में किसी भी बदलाव के खिलाफ सुरक्षा करना था जो आपके ऐप को निष्क्रिय कर सकता था। क्या इसका मतलब है कि एपीआई रन टाइम के दौरान जुड़े होते हैं (संकलन समय के विपरीत) और बिना किसी जानने या कुछ के स्वचालित रूप से अपडेट किया जा सकता है? (देखें, मैं मूल रूप से एपीआई/ढांचे के बारे में सोच रहा था क्योंकि जब भी आप संकलित होते हैं, पत्थर में सेट किया जा सकता है, शायद यह वह जगह है जहां मैं गलत हूं)

क्या कोई मेरी मदद कर सकता है? मैं वास्तव में इस नीति के बारे में उलझन में हूं। धन्यवाद!

+0

परिभाषा के अनुसार, आपकी खुद की कक्षाएं और अपने स्वयं के ऐप में जो कुछ भी नहीं है, वह निजी है। उनका मतलब है कि आईओएस द्वारा केवल आंतरिक उपयोग के लिए प्रदान की गई कार्यक्षमता का उपयोग करने के रूप में निजी एपीआई। जैसे एक हैक अप उदाहरण के रूप में, आपको सिस्टमक्लॉक एपीआई का उपयोग करने की अनुमति है, जो हुड के तहत एक निजी हार्डवेयरक्लॉक API का उपयोग करता है। SystemClock का उपयोग कर आपका ऐप ठीक होगा। लेकिन इसे छोड़कर और सीधे हार्डवेयरक्लॉक पर जाकर आपका ऐप बूट हो जाएगा। –

+1

ऐप्पल का निजी एपीआई नियम निजी ऐप्पल एपीआई का उपयोग नहीं कर रहा है। ऐप्पल ने अपने कई एपीआई दस्तावेज किए हैं, लेकिन कुछ अनियंत्रित हैं। ये अनियंत्रित एपीआई निजी एपीआई हैं जो ऐप्पल के दिशानिर्देशों का उल्लेख करते हैं। – cjc343

+0

[ऐप्पल और निजी एपीआई] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/1773615/apple-and-private-apis) – Barmar

उत्तर

37

प्रश्न "निजी एपीआई" और "गैर-निजी एपीआई" के बीच मुख्य अंतर क्या है?

  • निजी एक है कि सार्वजनिक रूप से परिभाषित नहीं है

प्र "गैर-निजी" API केवल एपीआई प्रदान की कर रहे हैं (वहाँ यह करने के लिए ज्यादा नहीं है) और ऐप्पल द्वारा सत्यापित?

  • निजी और सार्वजनिक एपीआई दोनों एप्पल द्वारा 'प्रदान की' लेकिन आप का उपयोग करने के लिए केवल सार्वजनिक एपीआई प्रदान की जाती हैं कर रहे हैं।
  • निजी एपीआई केवल

प्र एक API सिर्फ एक फ्रेमवर्क के साथ बातचीत करने का एक तरीका नहीं है, और एक फ्रेमवर्क सिर्फ समझाया वर्गों/हेडर का एक सेट है एप्पल द्वारा उपयोग के लिए हैं कि लोग छोटे उद्देश्यों के लिए उपयोग कर सकते हैं?

  • हाँ

प्र इसका मतलब यह नहीं होता है कि मैं अपने अनुप्रयोग में सब पर किसी का कोड (एप्पल के अलावा अन्य) का पुन: उपयोग नहीं कर सकते?

  • नहीं

प्र यदि यह सच है कि जब भी एक प्रोग्रामर अपने या अपने स्वयं के कस्टम वर्गों और तरीकों बनाता है, वह तकनीकी रूप से बस के लिए एक मिनी फ्रेमवर्क को डिजाइन नहीं है उसका विशिष्ट उद्देश्य? तो इसका मतलब यह नहीं होगा कि वह अपने निजी एपीआई का उपयोग कर रहा है?

  • नहीं (एक रूपरेखा एक ऐप्स को अलग है)

प्र क्या भी मेरी कक्षाओं/तरीकों, कैसे के साथ-साथ किसी और के वर्गों/तरीकों का उपयोग कर के बीच अंतर हो सकता है क्या वे अंतर भी बता सकते हैं, और यह एक समस्या क्यों होगी?

  • यह आमतौर पर होता नहीं

बिंदु आप प्राप्त करने की आवश्यकता है कि जब निजी एपीआई आप केवल निजी एप्पल के बारे में सोच किया जाना चाहिए की चर्चा करते हुए आपूर्ति एपीआई है।
तृतीय पक्षों के अन्य एपीआई अलग हैं (और ऐप्पल इतनी देर तक परवाह नहीं करता है क्योंकि तीसरा पक्ष कोड ऐप्पल निजी एपीआई का उपयोग नहीं करता है)।

+0

I gotcha उलझ गया। मुझे लगता है कि वहाँ निजी एपीआई के बारे में बहुत भ्रामक उल्लंघन है जो मैंने पढ़ा है, और यह समझना मुश्किल था क्योंकि कुछ लोग कह रहे थे कि यह एक बात थी और कुछ लोग कह रहे थे कि यह एक और है। और मुझे लगता है कि निजी एपीआई के बारे में सेब की जानकारी यह है कि वे "अनियंत्रित एपीआई" हैं और यह बिल्कुल स्पष्ट नहीं है कि उनका क्या मतलब है "अनियंत्रित"। इसे क्लीयर करने के लिए शुक्रिया! – giant91

+0

@Wain क्या आप एक उदाहरण दे सकते हैं कि एक निजी एपीआई क्या है या कैसा दिखता है? –

+0

@ सैमबुड्डा, चलिए 'यूआईडीवीस अनन्य इंडेंटिफायर' के साथ जाते हैं जो सार्वजनिक होता था, लेकिन जो अब निजी है।आप अपने ऐप पर चल रहे डिवाइस की पहचान करने के लिए इसका उपयोग करने में सक्षम होते थे, लेकिन उपयोगकर्ता की पहचान करने के लिए यह अपमानजनक है, इसलिए अब यह निजी है और विभिन्न उद्देश्यों के लिए कई और विशिष्ट विकल्प हैं। इसलिए, एक निजी एपीआई विशेष रूप से कुछ भी नहीं दिखता है। – Wain

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