却下された審査中のアプリがあります。動機は次のように述べています。
2.2 アプリはまだストア キット API を適切に使用していません。App Store のサーバーから価格情報を取得していません (スクリーンショットを参照)。Store Kit を使用して、アプリケーションは App Store にリクエストを送信し、現在購入可能な製品 ID のリストを取得する必要があります。アプリケーションがこのリストを受け取ると、購入可能としてフラグが付けられた製品のみが表示されます。アプリケーションはこのリクエストを App Store に送信するのではなく、サーバーから直接返された製品を表示しています。
これはスクリーンショットです
何をする必要があるのか 本当にわかりません...私には、すべてが正常に機能しているように見えます.また、「製品はサーバーから直接返されます」と彼らが言う理由もわかりません...それは好きではありませんそれ....私のコードをお見せします:
-(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
if(response.products.count > 0)
{
SKProduct* product;
for(int i = 0; i<response.products.count; i++)
{
product = [response.products objectAtIndex:i];
if([product.productIdentifier isEqualToString:@"com.mySite.MyApp.1"] || [product.productIdentifier isEqualToString:@"com.mySite.MyApp.2"] || [product.productIdentifier isEqualToString:@"com.mySite.MyApp.3"] || [product.productIdentifier isEqualToString:@"com.mySite.MyApp.4"] || [product.productIdentifier isEqualToString:@"com.mySite.MyApp.5"])
{
self.currentProduct = product;
[self beginPaymentWithProduct:product];
}
}
}
}
- (void)beginPaymentWithProduct:(SKProduct*)product
{
SKPayment *payment = [SKPayment paymentWithProduct:product];
[[SKPaymentQueue defaultQueue] addPayment:payment];
}
- (BOOL)canMakePurchases
{
return [SKPaymentQueue canMakePayments];
}
- (IBAction)buyProduct1:(id)sender
{
if([self canMakePurchases])
{
self.prodottoScelto = @"1";
[moneteAcquistateLabel setStringValue:@"25"];
ualRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithArray:[NSArray arrayWithObjects: @"com.mySite.MyApp.1", nil]]];
[ualRequest setDelegate:self];
[ualRequest start];
}
}
- (IBAction)buyProduct2:(id)sender
{
//same code as below
}
- (IBAction)buyProduct3:(id)sender
{
//same code as below
}
- (IBAction)buyProduct4:(id)sender
{
//same code as below
}
- (IBAction)buyProduct5:(id)sender
{
//same code as below
}
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{
for (SKPaymentTransaction* transaction in transactions) {
if (transaction.transactionState == SKPaymentTransactionStatePurchased) {
// NSLog(@"Transaction Purchased: %@", transaction);
// Make purchase available to the user, etc...
//assegno le monete acquistate all'utente
if ([prodottoScelto isEqual:@"1"])
{
// NSLog(@"prodotto 1 sbloccato");
[self aggiornaMonete:25];
}
else if ([prodottoScelto isEqual:@"2"])
{
// NSLog(@"prodotto 2 sbloccato");
[self aggiornaMonete:60];
}
else if ([prodottoScelto isEqual:@"3"])
{
// NSLog(@"prodotto 3 sbloccato");
[self aggiornaMonete:105];
}
else if ([prodottoScelto isEqual:@"4"])
{
// NSLog(@"prodotto 4 sbloccato");
[self aggiornaMonete:160];
}
else if ([prodottoScelto isEqual:@"5"])
{
// NSLog(@"prodotto 5 sbloccato");
[self aggiornaMonete:225];
}
// Once that's all done...
[queue finishTransaction:transaction];
}
else if (transaction.transactionState == SKPaymentTransactionStateFailed) {
//NSLog(@"Transaction Failed: %@", transaction);
// Display error to the user, using the error text in the transaction
// This example uses NSLog, typically you'd use UIAlertView here
// NSLog(@"Error: %@", [transaction.error localizedDescription]);
}
}
}
何を追加すればよいですか?この同じコードは、iOS アプリで正常に動作しています...助けてくれてありがとう