iPhone: невозможно проверить InAppPurchase в песочнице после того, как он будет одобрен - PullRequest
0 голосов
/ 03 апреля 2011

У меня есть бесплатное приложение для iPhone, которое используется при покупке приложения. Я протестировал свой первый InAppPurchase с песочницей, и он работал нормально. После того как InAppPurchase была одобрена и нормально работала в магазине приложений, я добавил несколько новых InAppPurchase в iTunes Connect и попытался протестировать их в среде песочницы. Однако я не смог найти эти новые InAppPurchases в моем приложении.

Ниже приведен код, который я использую для получения продуктов InAppPurchase:


//....

SKProductsRequest *prodRequest= [[SKProductsRequest alloc] initWithProductIdentifiers:
                [NSSet setWithObject: prod]];
prodRequest.delegate = self;
[prodRequest start];

//....

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
    int count = [response.products count];

    NSLog(@"number of products:%d",count);
    for (int i=0; i < count; i++) {
        SKProduct* product = [response.products objectAtIndex:i];
        NSLog(@"product %d:id=%@ title=%@ desc=%@ price=%@", i, product.productIdentifier, product.localizedTitle, 
             product.localizedDescription,
             product.price);
    }
}


Если я использую старый идентификатор продукта InAppPurchase, я могу его получить, но если я использую любой недавно созданный идентификатор продукта, я получаю счет == 0.

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

Я искал в Интернете эту проблему и попробовал следующее: 1. создал новую версию моего приложения, загрузил его в iTunes connect и отклонил бинарный файл. бесполезно 2. удалил все мои профили инициализации и создал новые. бесполезно 3. создал идентификатор приложения для моего приложения на портале обеспечения разработчика и создал профиль обеспечения для этого идентификатора и использовал его в Xcode. бесполезно

Моя версия Xcode была 3.2.5. Я обновил его до 4, но это не решило проблему.

Мне интересно, видел ли кто-нибудь еще эту проблему и нашел ли ее решение. Спасибо.

1 Ответ

2 голосов
/ 04 апреля 2011

ОК, я наткнулся на этот пост и получил подсказку:

Идентификаторы продукта действительны на одном телефоне, но не на другом

Я просто удалил приложение с iPod Touch, не перезагрузился, затем попытался снова запустить приложение из Xcode, и оно заработало. Я предполагаю, что были некоторые состояния, сохраненные вместе с приложением, которое определяет, использовать среду песочницы для InAppPurchase или нет. Хотя я мог запустить свой недавно скомпилированный бинарный файл, не удаляя старое приложение, я не смог избавиться от какого-то старого состояния, из-за которого приложение не работало в среде песочницы. Вот что вызвало проблему. Решение состоит в том, чтобы удалить старое приложение с устройства перед запуском вновь скомпилированного двоичного файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...