Je sais qu'il a été posée: iPhone In App Purchase - response.products are still empty?In-App Purchase response.products vide
mais je suis également en train de mettre en œuvre un dans l'achat d'applications et mes response.products est vide. Ma situation:
J'ai téléchargé et rejeté mon binaire une fois.
Mais je mets le statut de retour à l'attente pour le téléchargement à nouveau. (Est-ce important?)
L'état de tous mes dans l'application des produits d'achat sont « prêts à se soumettre ».
Mon utilisateur de production est déconnecté. L'utilisateur de test n'est pas encore connecté.
-(void) requestProductData{
SKProductsRequest *productRequest= [[SKProductsRequest alloc]
initWithProductIdentifiers:[NSSet setWithObjects:
@"com.mydomain.myapp.Pack1",
@"com.mydomain.myapp.Pack2",
@"com.mydomain.myapp.Pack3",nil]];
productRequest.delegate = self;
[productRequest start];
}
-(void)productsRequest:(SKProductsRequest *)request
didReceiveResponse:(SKProductsResponse *)response{
NSArray *myProducts = response.products;
NSLog(@"%d",[myProducts count]);//this prints 0
for(SKProduct * product in myProducts) {
[products addObject:product];
}
[request autorelease];
}
in my viewdidload:
if([SKPaymentQueue canMakePayments]) {
NSLog(@"IN-APP:can make payments");
}
else {
NSLog(@"IN-APP:can't make payments");
}
/*load transaction history to see if the user already bought some packs*/
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
products = [[NSMutableArray alloc] init];
NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString * path = [documentsDirectory stringByAppendingPathComponent: @"history.plist"];
self.transactionHistory = [NSMutableArray arrayWithContentsOfFile: path];
if(!transactionHistory) {
NSMutableArray *_transactionHistory = [[NSMutableArray alloc] init];
self.transactionHistory = _transactionHistory;
[_transactionHistory release];
}
//some other initializations here
[self requestProductData];
for (NSString *invalidProductId in response.invalidProductIdentifiers)
{
NSLog(@"Invalid product id: %@" , invalidProductId);
}
//this returns 3 of my product id's
Vide ou la réponse est «ID de produit non valide»? – malinois
dans le débogueur si je regarde la réponse. il y a NSObject - isa et _internal - isa mais c'est tout. Je ne vois même pas de response.products dans le débogueur et quand je dis NSArray * myProducts = response.products; myProducts a 0 éléments – tiw
Votre application est en mode Debug? – malinois