I am having exactly the same problem as described here :
I am testing an app on a iOS11 and getting a PopUp asking to sign in to iTunes Store [Sandbox] every time I start the application - even I am not logged into iTunes/App Store anymore under Settings. After entering the password the popup disappears, but comes again once the app is being started again. A never-ending loop…
According to the Apple documentation the message is stored on device in a StoreKit queue - because its processing was not successfully finished by calling “finishedMessage()”.
According to Apple technical note the message can be removed by calling “finishMessage” in paymentQueue(_:updatedTransactions:):
- (void)paymentQueue:(SKPaymentQueue_)queue updatedTransactions:(NSArray_)transactions{
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
}
I see no callback “updatedTransactions” in sdkbox::IAPListener which would allow me to finished this message. I’ve added a log into all sdkbox::IAPListener interface methods:
virtual void onInitialized(bool success);
virtual void onSuccess(const sdkbox::Product& p);
virtual void onFailure(const sdkbox::Product& p, const std::string& msg);
virtual void onCanceled(const sdkbox::Product& p);
virtual void onRestored(const sdkbox::Product& p);
virtual void onProductRequestSuccess(const std::vector<sdkbox::Product>& products);
virtual void onProductRequestFailure(const std::string& msg);
virtual void onRestoreComplete(bool ok, const std::string &msg);
virtual bool onShouldAddStorePayment(const std::string& productName);
virtual void onFetchStorePromotionOrder(const std::vector<std::string>& productNames, const std::string& error);
virtual void onFetchStorePromotionVisibility(const std::string productName, bool visibility, const std::string& error);
virtual void onUpdateStorePromotionOrder(const std::string& error);
virtual void onUpdateStorePromotionVisibility(const std::string& error);
No one will get called after I enter a correct password - keeping the message in the queue and prompting for password every time I start the application again.
Is there a SDKBOX solution for this case? I do not want to restore device OR write an own observer in Objective C.