EDIT3:РЕШЕНО
inAppPurchase не работает на устройствах с джейлбрейком! (по крайней мере тестирование в песочнице)
EDIT2: Теперь я знаю, почему ответ не дошел: это был сбой сети на iPhone. Когда сетевое подключение установлено, но данные не передаются, productRequest никогда не получает ответа.
Тем временем я все еще получаю недействительный идентификатор продукта. Любая помощь?
EDIT: Update: после попытки добавления новых тестовых учетных записей пользователей и их использования (и удаления/переустановки приложения снова и снова я теперь получаю сообщение "Недопустимый продукт")... Что не так? Чего не хватает?
Я пытаюсь внедрить систему inAppPurchase, и это было больно!
После того, как я продолжал получать недействительные идентификаторы продуктов, я просмотрел следующий список:
[CHECKED] Вы включили встроенные покупки для своего идентификатора приложения?
[CHECKED] Проверяли ли вы, что ваш продукт разрешен к продаже?
[CHECKED] Вы отправили (и, возможно, отклонили) двоичный файл приложения?
[ПРОВЕРЕНО] Совпадает ли идентификатор пакета .plist вашего проекта с идентификатором вашего приложения?
[ПРОВЕРЕНО] Вы создали и установили новый профиль обеспечения для нового идентификатора приложения?
[ПРОВЕРЕНО] Настроили ли вы свой проект для кодовой подписи, используя этот новый профиль подготовки?
[ПРОВЕРЕНО] Вы собираете для iPhone OS 3.0 или выше?
[ПРОВЕРЕНО] Используете ли вы полный идентификатор продукта при отправке SKProductRequest?
[ПРОВЕРЕНО - уже неделя] Вы ждали несколько часов с момента добавления продукта в iTunes Connect?
[ПРОВЕРЕНО — полученные платежи] Активны ли ваши банковские реквизиты в iTunes Connect? (через Марка)
[Вот где возникла проблема] Вы пытались удалить приложение со своего устройства и переустановить его? (через Гектора, S3B, Алекса О, Джо и Альберто)
----> И теперь делегат, похоже, не работает....?? Я не получаю свой @"didReceiveResponse" на консоли, но я получаю @"нажатие и обработка" (код ниже)
@implementation InAppHandler
- (void)requestProUpgradeProductData
{
NSLog(@"clicked and handling");
NSSet *productIdentifiers = [NSSet setWithObject:@"pastedFromiTunesConnect"];
productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers];
productsRequest.delegate = self;
[productsRequest start];
// we will release the request object in the delegate callback
}
#pragma mark -
#pragma mark SKProductsRequestDelegate methods
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
NSLog(@"didReceiveResponse");
NSArray *products = response.products;
proUpgradeProduct = [products count] == 1 ? [[products objectAtIndex:0] retain] : nil;
if (proUpgradeProduct)
{
NSLog(@"Product title: %@" , proUpgradeProduct.localizedTitle);
NSLog(@"Product description: %@" , proUpgradeProduct.localizedDescription);
NSLog(@"Product price: %@" , proUpgradeProduct.price);
NSLog(@"Product id: %@" , proUpgradeProduct.productIdentifier);
}
for (NSString *invalidProductId in response.invalidProductIdentifiers)
{
NSLog(@"Invalid product id: %@" , invalidProductId);
}
// finally release the reqest we alloc/init’ed in requestProUpgradeProductData
[productsRequest release];
[[NSNotificationCenter defaultCenter] postNotificationName:kInAppPurchaseManagerProductsFetchedNotification object:self userInfo:nil];
}
@end
Как кто-нибудь получил это раньше? Спасибо!