2014-04-16 1 views
15

IAP 기능을 갖춘 iOS 응용 프로그램을 개발하고 있습니다. 잘 작동한다. 하지만 오늘 이상한 문제가 발생했습니다. iTunes Store에 로그인하라는 메시지가 표시되는 이유는 무엇입니까? 화면 캡처는 다음과 같습니다.내 ios 응용 프로그램에서 항상 iTunes Store에 로그인하도록 요청합니다.

응용 프로그램을 시작하거나 백그라운드에서 다시 시작할 때마다 항상이 내용이 표시됩니다. 그것은 응용 프로그램을 삭제하고 다시 설치 한 후에도 여전히 이것을 보여줍니다. 내 소스 코드에서 중단 점을 설정할 때. 거래, 지불 위임 콜백은 없습니다. 아무도 이유가 무엇인지 말해 줄 수 있습니까? Apple IAP Sandbox의 문제 일 수 있습니까? (나는 아무 문제없이 다른 장치에서 동일한 응용 프로그램을 실행합니다. 내가 구입 샌드 박스에 복원 할 수 있습니다.) 나도이 문제 몇 번 했어

enter image description here

+0

앱에서 영수증 확인을 수행하고 있습니까? 영수증이 올바르게 확인되지 않은 경우 앱에서 비슷한 것을 보았습니다 (일반적으로 한 번만). – user1459524

+1

실제로 로그인하면 계속 나오나요? – rmaddy

+0

영수증을 확인하지 못했습니다. 다음에 앱을 다시 실행할 때 다시 표시되거나 로그인 또는 취소 한 상태에서 백그라운드에서 다시 시작합니다. –

답변

5

, 내가 처리를 중지했다 밝혀졌다 대기열에있는 모든 트랜잭션에 대해 finishTransaction을 호출하기 전의 트랜잭션 수. 나는 특별한 경우에 실패한 거래를 끝내는 것을 잊고 있었다.

그래서, 당신은 응용 프로그램이 한 번 실행시키는 노력이처럼 관찰자의 위임에 각자에 대한 finishTransaction를 호출 할 수 있습니다

-(void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions 
{ 
    foreach(SKPaymentTransaction *tr in transactions) [queue finishTransaction:tr]; 
} 

즉 트랜잭션 상태에 관계없이 모든 거래를 완료합니다. 테스트 실행 후 원래 처리 코드로 되돌립니다.

희망이 도움이됩니다.

1

내가하려고 여러 가지 : mpramat에 의해 설명 된대로 모든

  • 통화 finishTransaction 아이튠즈에서 테스트 계정을 삭제
  • 재부팅의 iDevice
  • (내 경우, 배열이 비어) 거래를 대기 잇다.

마지막으로 놀라운 것은 iDevice에서 앱을 삭제 한 다음 XCode를 통해 다시 설치하는 것뿐이었습니다.

관련 문제