MKStoreKit Внедрение - PullRequest
       0

MKStoreKit Внедрение

1 голос
/ 27 марта 2011

Я провел последние 2 дня, борясь, пытаясь заставить покупки приложения работать! Приложение не было одобрено Apple (оно еще не готово), поэтому я просто применил метод Developer Pulled Binary. Я добавил расходный материал (и я почти уверен, что мои контракты очищены) и назвал его com.MYAPP.MYAPPNAME.levelone

Я использую MKStoreKit 3.1, соответствующий

Я просто хочу видеть, что элемент появится в NSLog для приложения, поэтому у меня это есть в моем приложении Delagate

   - (void) applicationDidFinishLaunching:(UIApplication*)application
{

    [MKStoreManager sharedManager];
    [[MKStoreManager sharedManager] purchasableObjectsDescription];
        ...

Когда я запускаю это, он просто говорит мне

Problem in iTunes connect configuration for product: com.mycompany.myapp.005
Problem in iTunes connect configuration for product: com.mycompany.myapp.featureA

Это игра на основе Cocos2d, если она имеет какое-либо значение.

Ответы [ 3 ]

4 голосов
/ 19 мая 2011

Есть причины, по которым я не реализовал MKStoreManager для приема набора продуктов в качестве параметров.1) Вы не должны засорять свой код жестко закодированными идентификаторами продуктов.Это потому, что вы инициируете запрос на покупку с идентификатором продукта.Первое происходит в AppDelegate, а второе - в одном из ваших контроллеров представления.Таким образом, должен быть некоторый файл, в который вы помещаете все эти константы продуктаПочему бы не использовать сам MKStoreManager.h для этого?

3 голосов
/ 15 апреля 2011

MKStoreKit 3.1 требует некоторой настройки перед использованием;он не просто работает из коробки.

В частности, вам нужно сообщить MKStoreKit список функций / идентификаторов продуктов, которые вы настроили в iTunes Connect.Как ни странно, вы делаете это, изменяя исходный код, вместо того, чтобы передавать массив аргументов.

Проверьте MKStoreManager.h строк 26-34 :

// CONFIGURATION STARTS -- Change this in your app
define kConsumableBaseFeatureId @"com.mycompany.myapp."
#define kFeatureAId @"com.mycompany.myapp.featureA"
#define kConsumableFeatureBId @"com.mycompany.myapp.005"
// consumable features should have only number as the last part of the product name
// MKStoreKit automatically keeps track of the count of your consumable product

#define SERVER_PRODUCT_MODEL 0
// CONFIGURATION ENDS -- Change this in your app

Вы должны изменить это.Если вы этого не сделаете, вы получите ошибки, подобные той, которую вы опубликовали.

Но это не единственное место.Также необходимо обновить функцию реализации requestProductData в MKStoreManager.m , где используются kFeatureAId и kConsumableFeatureBId.

-(void) requestProductData
{
    SKProductsRequest *request= [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObjects: 
                                  kFeatureAId,
                                  kConsumableFeatureBId,
                                  nil]];
    request.delegate = self;
    [request start];
}

Необходимо указать список идентификаторов продуктасам;MKStoreKit не может угадать это для вас.

Тем не менее, это странно.Это заставляет вас желать, чтобы MKStoreKit просто принял массив идентификаторов продукта в своем инициализаторе!

0 голосов
/ 12 апреля 2011

Удалите неиспользуемые продукты внутри MKStoreManager.m следующим образом

-(void) requestProductData
{
    SKProductsRequest *request= [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObjects: 
                                  kFeatureAId,
                                  //kConsumableFeatureBId,
                                  nil]];
    request.delegate = self;
    [request start];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...