В приложении Покупка SKProductsRequest не работает, когда приложение уже установлено на устройстве - PullRequest
4 голосов
/ 29 марта 2011

У меня проблемы с тестированием функции покупки внутри приложения.Если я переустанавливаю приложение на устройстве, на котором уже установлено приложение с предыдущей версией, SKProductsRequest возвращает ответ только с объектом на invalidProductIdentifiers.Если я удаляю приложение с устройства и затем устанавливаю новую версию, SKProductsRequest работает нормально.

Есть идеи?

Заранее спасибо.

- (void)requestProductData:(NSString *)aFeatureID {    
    SLLog(@"Products Request For: %@", aFeatureID);
    SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObject:aFeatureID]];
    request.delegate = self;
    [request start];
}

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
    if ([response.products count] > 0) {        
        [self.purchasableObjects addObjectsFromArray:response.products];

#ifndef NDEBUG  
        for(int i=0;i<[self.purchasableObjects count];i++)
        {       
            SKProduct *product = [self.purchasableObjects objectAtIndex:i];
            SLLog(@"Feature: %@, Cost: %f, ID: %@",[product localizedTitle],
                  [[product price] doubleValue], [product productIdentifier]);
        }

        for(NSString *invalidProduct in response.invalidProductIdentifiers)
            SLLog(@"Problem in iTunes connect configuration for product: %@", invalidProduct);
#endif  
        isProductsAvailable = YES;
    } else if ([response.invalidProductIdentifiers count] > 0){
        SLLog(@"MKStoreManager-productsRequest empty results: %@", [response.invalidProductIdentifiers objectAtIndex:0]);
    }
    if([_delegate respondsToSelector:@selector(productFetchComplete)])
        [_delegate productFetchComplete];
    [request autorelease];
}

1 Ответ

6 голосов
/ 31 марта 2011

Это то, что кто-то сказал мне на Cocoa-dev@lists.apple.com:

Вы подключаетесь к среде или производственной среде Sandbox?

Я полагаю, что вы можетеПодключаться к песочнице можно только при запуске через Xcode и , если приложение «обновляется» из версии App Store, оно не запускает песочницу.По крайней мере, это крошечный кусочек IAP-вуду, свидетелем которого я был ... Это означает, что он может перестать быть правдой в любой момент, так как настройка IAP - это один жертвенный агнец от магии.

Я не уверен на 100% в этом, потому что я еще не проверял, но я сообщу вам, как только сделаю.

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