2012-03-13 2 views
1

실패 :- SKProduct의 요청이 코드를 구현하고

if ([SKPaymentQueue canMakePayments]) 
{ 
    // Display a store to the user. 
    NSLog(@"Device Can Make Payments"); 
    SKProductsRequest *ProductRequst = [[SKProductsRequest alloc]initWithProductIdentifiers:[NSSet setWithObjects:@"slalomtfcoins", nil]]; 
    ProductRequst.delegate = self; 
    [ProductRequst start]; 
} 
else { 
    // Warn the user that purchases are disabled. 
    NSLog(@"Device Can't Make Payments"); 
    UIAlertView *thealert = [[UIAlertView alloc]initWithTitle:@"Your Device Limited" message:@"we have noticed that you device restrictions setting are currently limited. you can change it ny going to Settings -> General -> Restrictions and turn it off" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 
    [thealert show]; 
    [thealert release]; 
} 



-(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response{ 
SKProduct *VailProduct = nil; 
NSLog(@"%d",[response.products count]); 
int count = [response.products count]; 
if (count>0) { 
    VailProduct = [response.products objectAtIndex:0]; 
    NSLog(@"Products are availble"); 
} else if (!VailProduct){ 
    NSLog(@"Products are Not availble"); 
}  

}

및 로그 인쇄 "제품 availble을하지 있습니다." 내 p.list에있는 번들 ID는 이고 제품 ID는 itunes 연결과 동일합니다.

무엇이 문제입니까? 당신은 앱내 구매 사용 출시되지 않은 애플 리케이션을위한 "환경 - 샌드 박스"를 사용하는 경우

감사

+0

당신이있는 경우를 iTunes에 제품을 만든 후에는 테스트하기 전에 몇 시간 (몇 시간 이상)이 걸릴 수도 있습니다. –

답변

1

할만한 것들.

  • 장치 재부팅 엑스 코드에서 프로비저닝 프로파일과
  • 목록 항목
  • 하드 가게에서 장치에서
  • 로그를 응용 프로그램을 삭제 장치를 다시 다운로드 한 후 삭제
  • 앱을 빌드하고 실행하십시오.
  • 다시 시도하십시오.

아마도 도움이되지는 않을지 모르지만 시도해 볼 수있는 또 다른 수정 사항은 새로운 테스트 계정 사용자를 생성하고 시도하는 것입니다. 문제는 구매가 아닌 유효성 검사이므로 도움이되지 않습니다. 도로에 문제가 생길 때를 대비해서 언급합니다.

또한이 작업을 처음 수행하는 경우 확실하게 앱 ID와 제품 ID를 다시 확인해야합니다.

1

당신이?, 엑스 코드에서 응용 프로그램을 실행하면 사용하여 "환경에 대한 엑스 코드에서 실행해야 -sandbox "

1

기기가 미국 스토어에없는 경우 기기에서 iTunes로 이동하고 스토어를 전환하여 해결할 수있는 버그가 샌드 박스에있는 것 같습니다. 앱에서 다시 구매를 시도하면 다른 상점으로 다시 변경하라는 메시지가 표시됩니다.

또한 시뮬레이터가 아닌 장치에서 테스트하고 iTunes Connect를 통해 만든 테스트 계정을 사용하는지 확인하십시오.

0

xCode 4.5.1에서 모든 앱내 구매 프로세스에 iPhone 시뮬레이터를 사용할 수 있습니다.
시간이 좀 지나치지 않고 시간이 너무 오래 걸리므로 시뮬레이션을 구매하거나 다시 시작해야합니다 (시뮬레이터 및 iPhone).
코드에서 성공적인 구매 프로세스 후에 Bool을 설정하고 TRUE를 할당 할 수 있습니다. 모든 일이 잘 진행되도록 NSLog를 사용하십시오.
그런 다음 그 bool을 모든 필요에 사용할 수 있습니다.

또 다른 한가지 :
com.example.myapp.purchase1
이 값을 넣어
com.example.myapp.purchase2
... : 당신은 제품 ID, 예를 들어, 완전히 정확한지 확인해야 iTunes Connect 및 앱에서.(기다리는 시간이 정말 짧은 왜 나를 위해, 내가 모르는 : 더 적은 단 분의 부부 나)

어쩌면 당신은 아이튠즈 업데이트에 대한 조금 시간을 기다릴 필요가

관련 문제