2014-04-16 8 views
15

Pracuję nad aplikacją ios z funkcją IAP. To dobrze działa. Ale dzisiaj spotkałem dziwny problem. Zawsze wyświetla mi komunikat z prośbą o "Zaloguj się do iTunes Store" z kilku powodów. Oto zrzut ekranu:Moja aplikacja ios zawsze prosi mnie o zalogowanie się do iTunes Store

Zawsze pokazuje to za każdym razem, gdy uruchamiam aplikację lub wznawiam z tła. Pokazuje to nawet po usunięciu i ponownym zainstalowaniu aplikacji. Kiedy ustawiam breakpointy w moim kodzie źródłowym. Nie ma żadnych transakcji, callback od przekazania płatności. Czy ktoś może mi powiedzieć, jaki jest tego powód? Czy to może być problem z Apple IAP Sandbox? (I uruchomić tę samą aplikację w innych urządzeniach bez żadnego problemu. Mogę kupić, przywrócić w piaskownicy.)

enter image description here

+0

Czy robisz weryfikację paragonu w swojej aplikacji? Widziałem coś podobnego w aplikacji, gdy paragon nie został poprawnie zweryfikowany (zwykle tylko raz). – user1459524

+1

Czy ciągle nadchodzi, jeśli faktycznie się logujesz? – rmaddy

+0

Nie zweryfikowałem potwierdzenia. Pokaże to ponownie przy kolejnym uruchomieniu aplikacji lub wznowieniu z tła bez względu na to, czy logowałem się, czy anulowałem. –

Odpowiedz

5

miałem ten problem zbyt kilka razy, okazało się, że jestem zatrzymywania przetwarzania transakcji przed wywołaniem finishTransaction we wszystkich kolejkowanych transakcjach. Zapomniałem zakończyć nieudanych transakcji w konkretnym przypadku.

Więc można spróbować pozwalając aplikacja uruchomić raz zadzwonić finishTransaction dla każdego i każdy w swoim delegatem obserwatora tak:

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

tj zakończyć każdą transakcję, niezależnie od stanu transakcji. Po uruchomieniu testu powróć do oryginalnego kodu obsługi.

Mam nadzieję, że to pomoże.

1

Próbowałem wielu rzeczy:

  • wezwanie finishTransaction dla wszystkich transakcji w kolejce jak wyjaśnił mpramat (w moim przypadku, tablica była pusta)
  • Uruchom ponownie iDevice
  • Usunięcie konta testowego w iTunes Połączyć.

Wreszcie jedyną rzeczą, która zadziwiająco sprawdziła się, było usunięcie aplikacji z iDevice, a następnie jej ponowna instalacja za pomocą XCode.

Powiązane problemy