16

तो मेरे पास एक ऐप है जिसके लिए सदस्यता (आईएपी के माध्यम से) की आवश्यकता है, और यह आज का विजेट प्रदान करता है। विजेट के भीतर (साथ ही ऐप के अंदर) मैं सक्रिय सदस्यता के लिए बंडल में ऐप रसीद की जांच करने के लिए आरएमएसटोर का उपयोग करता हूं। यह सैंडबॉक्स में ठीक काम करता है, जिसमें टेस्टफलाइट के माध्यम से स्थापित किया गया है। लेकिन आज, ऐप को ऐप्पल द्वारा अनुमोदित किया गया था, और जैसे ही मैंने लाइव-इन-द-स्टोर संस्करण का परीक्षण किया, जबकि मुख्य ऐप ने ऐप रसीद में उपयोगकर्ता की खरीदारी देखी, आज का विस्तार ऐप रसीद नहीं पढ़ रहा था, और इस प्रकार कोई सदस्यता नहीं मिली!आईओएस इन-एप-खरीद + आज एक्सटेंशन विजेट

आज दोनों एक्सटेंशन और मुख्य ऐप ऐप रसीद पढ़ने और सदस्यता जानकारी देखने के लिए सटीक कोड का उपयोग कर रहे हैं। धरती पर यह मुख्य ऐप में क्यों काम करेगा, लेकिन एक्सटेंशन नहीं? क्या यह जाना पहचाना हुआ मुद्दा है? क्या यह स्टोरकिट के बजाए आरएमएसटोर के साथ कुछ करना है? क्या मुझे कुछ चालाक/अलग करना है?

मुझे लगता है कि समस्या को रसीद सत्यापन के साथ करना है - उदाहरण के लिए, बंडल पहचानकर्ता सैंडबॉक्स में ऐप स्टोर बनाम कुछ अलग होगा, उदाहरण के लिए?

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

+2

ऐप रसीद पढ़ने के लिए उपयोग किए जाने वाले कोड को पोस्ट करना एक अच्छा विचार हो सकता है। आरएमएसटीयर से हर कोई परिचित नहीं हो सकता है। – user1459524

+1

अगर मुझे यहां एंटाइटेलमेंट के साथ कुछ समस्या है तो मुझे आश्चर्य नहीं होगा। आईआईआरसी, ऐप एक्सटेंशन माता-पिता की तुलना में विभिन्न पहचानकर्ताओं के साथ हस्ताक्षरित कोड हैं और अलग-अलग ऐप आईडी और वह सब कुछ है। क्या आपने पुष्टि की है कि एक एक्सटेंशन वास्तव में एसके रसीद पढ़ सकता है? इसके अलावा, मुझे यकीन नहीं है कि वर्कअराउंड क्या है, लेकिन यदि आप इसे अपने ऐप में सत्यापित कर सकते हैं, तो यह समस्या की तरह लगता है। मैंने ऐप्पल द्वारा ऐप-एक्सटेंशन संचार करने के तरीके के रूप में वर्णित ऐप समूहों के साथ वास्तव में केवल उपयोगकर्ता डिफ़ॉल्ट को देखा है, इसलिए एसके वास्तव में एक्सटेंशन में अनुपलब्ध होने पर वास्तव में चूस जाएगा। – mszaro

+0

मुझे एप रसीद पढ़ने वाले एक्सटेंशन के बारे में शून्य दस्तावेज मिल सकता है, लेकिन चूंकि यह बाइनरी I (गलत तरीके से) के टेस्टफ्लाइट-तैनात संस्करण में ठीक काम करता है, यह लगा कि यह ठीक था। – DanM

उत्तर

6

सभी रसीदें (ऐप खरीद और इन-एप खरीद/एस) आवेदन बंडल के अंदर एक फ़ाइल में संग्रहीत की जाती हैं। ऐप एक्सटेंशन एक बंडल में रहता है जो एप्लिकेशन बंडल के अंदर घोंसला है - इसलिए मुझे आश्चर्य होगा कि अगर बाहरी बंडल में रसीद फ़ाइल तक पहुंच है (लेकिन appStoreReceiptURL पर कॉल करके जांच के लायक है)।

तो रसीद (अर्थात या तो रसीद ही, या रसीद की प्रक्रिया के कुछ परिणाम) के बारे में जानकारी सामान्य साधनों के माध्यम से विस्तार करने के लिए युक्त app से पारित होने के लिए है, यानी एक shared container और maybe file coordination का उपयोग कर की जरूरत है।

+0

किसी भी विचार पर यह क्यों सैंडबॉक्स मोड/टेस्टफलाइट के माध्यम से काम कर सकता है, लेकिन ऐप स्टोर नहीं? – DanM

+0

टेस्टफलाइट में, सभी इन-ऐप खरीदारियों को वैसे भी मुक्त किया जाना चाहिए। "सैंडबॉक्स मोड" से आपका क्या मतलब है? क्या आपका मतलब डेवलपर डिवाइस पर ऐप चलाकर सामान्य परीक्षण है? क्या आपने टेस्ट ऐप स्टोर खातों का उपयोग करके कोशिश की? ([यह objc.io आलेख] (http://www.objc.io/issue-17/receipt-validation.html) का एक अच्छा अवलोकन है।) – roop

+0

मेरा मतलब है "सैंडबॉक्स मोड" यहां संदर्भित है: https: // developer.apple.com/library/ios/technotes/tn2259/_index.html ... यानी एक परीक्षण उपयोगकर्ता का उपयोग कर खरीद। यह काम करता है कि मैंने एक्सकोड के साथ या टेस्टफलाइट के माध्यम से सीधे डिवाइस पर निर्माण के माध्यम से तैनात किया है। – DanM

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