2012-02-10 7 views
5

मैं अपने ऐप में एमकेस्टोरकिट को कार्यान्वित कर रहा हूं, लेकिन ऐप की प्रकृति ऐसी है कि इसे ऐप खरीद में उपलब्ध (गैर-उपभोग योग्य) उत्पादों की सूची में लगातार, गतिशील परिवर्तनों का समर्थन करने की आवश्यकता होगी। इस प्रकार, मुझे उपलब्ध उत्पाद आईडी, विवरण इत्यादि की वर्तमान सूची के लिए नियमित रूप से हमारे सर्वर से पूछताछ करने में सक्षम होना चाहिएएमकेस्टोरकिट के साथ गतिशील सर्वर उत्पाद सूची कार्यान्वित करना?

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

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

यदि नहीं, तो मुझे कल्पना करनी होगी कि वहां ऐसे लोग हैं जिन्होंने इस समर्थन के लिए कोड संशोधित किया है। यदि हां, तो प्राप्त किसी भी सुझाव और ज्ञान की सराहना की जाएगी।

अग्रिम धन्यवाद।

उत्तर

4

जहां तक ​​मैं देख सकता हूँ, MKStoreKit अपने उत्पादों की सूची एक plist के रूप में MKStoreManager.m के लिए निम्न विधि में पुन: प्राप्त करता:

#pragma mark Internal MKStoreKit functions 
//line 201 of MKStoreManager.m 

- (NSDictionary*) storeKitItems 
{ 
    return [NSDictionary dictionaryWithContentsOfFile: 
      [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"MKStoreKitConfigs.plist"]]; 
} 

इसलिए, यदि आप सिर्फ इस विधि कॉल बदलने के लिए, उदाहरण के लिए, प्राप्त करने के लिए आपके सर्वर से नया आइटम, आप जिस परिणाम की आवश्यकता है उसे प्राप्त कर सकते हैं।

उदाहरण के लिए, आप कुछ prepopulated .plist हो सकता है, और उसके बाद इसे NUSUserDefaults को एक NSDictionary की तरह ले जाया जा सकता है, और जब सर्वर से नए आइटम आते हैं, तो आप इसे अपडेट करते हैं।

तो, अपने विधि कुछ इस तरह दिखेगा:

- (NSDictionary*) storeKitItems 
    { 
    if(![[NSUserDefaults standardUserDefaults]valueForKey:@"NewConfigs"]) 
      [[NSUserDefaults standardUserDefaults]setValue:[NSDictionary dictionaryWithDictionary:[NSDictionary dictionaryWithContentsOfFile: 
                              [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"MKStoreKitConfigs.plist"]]] forKey:@"NewConfigs"]; 
[[NSUserDefaults standardUserDefaults]synchronize]; 

return [[NSUserDefaults standardUserDefaults]valueForKey:@"NewConfigs"]; 
    } 
+0

धन्यवाद निकिता, यह मैं अनिवार्य रूप से क्या किया है। आप सही हैं, एमकेस्टोरकिट अपनी आंतरिक प्लिस्ट लाता है, इसलिए मैंने उस विधि को अपने आप से एक विधि से रोक दिया जो सर्वर से पूछताछ करता है (या सर्वर अनुपलब्ध होने पर कैश की गई आंतरिक सूची देता है)। – Murdock

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