2009-11-09 3 views
0

Apple에서 "권장"한 것처럼, 인앱 구매 응용 프로그램에서 이전에 성공한 트랜잭션을 복원하기 위해 응용 프로그램에 단추를 넣었습니다.IPHONE : Storekit - 트랜잭션 취소 (애플 리케이션 구입)

문제는 이것입니다. 사용자가 버튼을 클릭하면 응용 프로그램이 트랜잭션 복원을 시작합니다. 이 프로세스 중에 응용 프로그램이 어떤 이유로 닫히면 다음에 응용 프로그램이 실행될 때 프로세스가 계속됩니다.

필자의 경우 모든 트랜잭션을 복원하는 데 시간이 걸릴 수 있습니다. 특히 많은 트랜잭션이있는 경우에 특히 그렇습니다. 따라서 응용 프로그램이 다시 시작되면 검은 색 화면이 나타나고 마지막 트랜잭션이 복원 될 때까지 응용 프로그램이로드되지 않습니다.

분명히 트랜잭션을 복원하는 프로세스가 완료 될 때까지로드되지 않는 응용 프로그램을 중단시킵니다. 애플이 권장으로

, 내가

이 복원에 유용
CustomStoreObserver *observer = [[CustomStoreObserver alloc] init]; 
[[SKPaymentQueue defaultQueue] addTransactionObserver:observer]; 

판매를 중단하지만 내 경우 ... 내 응용 프로그램의 시작 부분에이이 문제가 된 트랜잭션을 복원하는 통증을 일으키는 이미 구매를했다.

나는 프로그램이 시작될 때 실행할 수있는 이전 트랜잭션의 복원을 중단하고 토 앱이 실행되는 동안 허용 할 수 있기를 바랍니다.

그 방법은 무엇입니까?

답변

1

UI 스레드를 차단하지 않도록 저장소 관찰자를 다른 스레드/실행 루프에 만들 수 없습니까?

스플래시 화면을 표시 한 후에 만 ​​트랜잭션 관찰자를 추가하십시오.

+0

감사 ... 예, 그것에 대해 생각해 보았습니다. 그건 그냥 끊지 부분을 해결할 수 있지만 거래는 CPU를 사용하고 응용 프로그램을 천천히 계속할 것입니다 ... – SpaceDog

+0

미안 해요 그때 도울 수 없어요. SK가 많은 거래가있는 앱을 기대하지 않는다고 생각합니다. 이 문제를 완화하려면 트랜잭션이 완료되지 못하고 (드물지만) 앱이 종료되면이 프로세스를 시작해야합니다. 최소한 사용자가 시작한 액션이고 앱이 스플래시 화면에 도달하면 클라이언트는 지연을 더 받아 들여야합니다. – Simon

+0

아마도 도움이되지 않는 댓글 일 수도 있지만 거래량이 더 적어 지도록 더 많은 금액을 청구하는 것이 좋습니다. 사람들이 더 많은 돈을 벌고 더 적은 거래를하도록 장려하기 위해 개별적으로 구입할 때보 다 약간 더 저렴한 가격으로 아이템 팩을 제공 할 수 있습니다. – Simon

관련 문제