Google에서 인앱 구매를 추가하는 것에 관한 거의 모든 stackoverflow 질문을 살펴 보았지만 그 중 아무 것도 작동하지 않는 것 같습니다. 내 앱에서 구매를 시도 할 때 모든 것이 잘 작동하고 제품이 사용 가능하지만 모든 구매에 대한 경고보기가 표시되지 않습니다. IAP를위한 Heres는 내 모든 코드 :iPhone 응용 프로그램에서 인앱 구매가 작동하지 않습니다.
user taps remove ads button
user requests to remove ads
user can make payments
products available!
모든 것을 :이 일을 해요 경우
- (IBAction)tapsRemoveAdsButton{
NSLog(@"User taps remove ads button");
[self tapsRemoveAds];
}
- (void)tapsRemoveAds{
NSLog(@"User requests to remove ads");
if([SKPaymentQueue canMakePayments]){
NSLog(@"User can make payments");
SKProductsRequest *productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObject:kRemoveAdsProductIdentifier]];
productsRequest.delegate = self;
[productsRequest start];
}
else{
NSLog(@"User cannot make payments due to parental controls");
}
}
- (IBAction)purchase{
SKProduct *removeAdsProductID = (SKProduct *)kRemoveAdsProductIdentifier;
SKPayment *payment = [SKPayment paymentWithProduct:(SKProduct *)kRemoveAdsProductIdentifier];
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
[[SKPaymentQueue defaultQueue] addPayment:payment];
}
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response{
SKProduct *validProduct = nil;
int count = [response.products count];
if(count > 0){
validProduct = [response.products objectAtIndex:0];
NSLog(@"Products Avalable!");
//[self sloganizeWord];
}
else if(!validProduct){
NSLog(@"No products avalable");
}
}
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions{
for(SKPaymentTransaction *transaction in transactions){
switch (transaction.transactionState){
case SKPaymentTransactionStatePurchasing: NSLog(@"Transaction state -> Purchasing");
break;
case SKPaymentTransactionStatePurchased: [self doRemoveAds];
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
NSLog(@"Transaction state -> Purchased");
break;
case SKPaymentTransactionStateRestored:
NSLog(@"Transaction state -> Restored");
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
break;
case SKPaymentTransactionStateFailed:
if(transaction.error.code != SKErrorPaymentCancelled){
NSLog(@"Transaction state -> Cancelled");
}
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
break;
}
}
}
- (void)doRemoveAds{
areAdsRemoved = YES;
[[NSUserDefaults standardUserDefaults] setBool:areAdsRemoved forKey:@"areAdsRemoved"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
올바르게 경고보기는 방법 "paymentQueue"콘솔에서 모든 내가 얻을에 표시한다 그것은 또한
transaction state -> purchasing
등을 기록해야 paymentQueue 방법까지, 난 이미 IAP는 아이튠즈 커넥트에서 설정해야하고, IAP에 대한 ID가 정확한지 확인하십시오. (그렇지 않으면 제품을 사용할 수 없을 것입니다.) iOS7에서 비 jailbroken 장치를 사용하고 있으며 프로비저닝 프로파일을 모두 설정했습니다 (또는 적어도 이미 앱 스토어에 앱을 제출했기 때문에 생각합니다.)) 다시, 저는 다른 질문들을 보았습니다. 그러나 그들 중 누구도 저에게 어떤 도움도 제공하지 않는 것 같습니다. 누구나 도움을 주신 모든 분들께 미리 감사드립니다.
모바일 설정으로 이동하고 iTunes 연결 및 앱 스토어 섹션에서 로그 아웃 한 후 다시 시도하십시오 –
구매를 위해 테스트 계정을 사용하고 있습니까 ?? – abhishekkharwar