有时我会收到一个非常烦人的对话框,其中包含以下文字:“点击继续并登录以检查下载。” 如果我登录(使用沙盒用户)或点击取消,对话框会立即再次显示。
我正在使用非续订订阅和非消耗性产品。
任何想法如何摆脱这个对话框?
谢谢
/马丁
有时我会收到一个非常烦人的对话框,其中包含以下文字:“点击继续并登录以检查下载。” 如果我登录(使用沙盒用户)或点击取消,对话框会立即再次显示。
我正在使用非续订订阅和非消耗性产品。
任何想法如何摆脱这个对话框?
谢谢
/马丁
共识似乎是:
这里有一些关于这个问题的更多讨论:
https://discussions.apple.com/message/21492551?ac_cid=tw123456#21492551
沙盒多次发出冗余对话框,非沙盒帐户不可用。如果您遵循 storekit 协议,则无需担心。我遇到了从 didReceiveResponse 代表发出的重复警报框的相同问题,但是我的应用程序获得了批准,并且在实际环境中没有问题。
我以最简单的方式解决了这个问题。当 AlertView 出现时,只需单击继续并使用该帐户登录。(在我的情况下,它甚至存储了从我的 iTunesConnect 中的测试用户列表中删除的旧帐户)。我收到了我正在测试我的 InAppPurchase 的 5 或 6 个帐户的警报,但是在我用所有这些帐户登录后,我不再收到它。希望这会有所帮助。
我有同样的问题。
我非常肯定,实际问题在于支付队列中有应用内购买,并且这些购买需要从队列中清除。
这样做的代码:
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
我的应用程序有一个复杂的验证系统,在我调用上述方法之前需要通过它。如果用户在此期间退出应用程序或失去互联网连接,付款队列中将会有剩余的购买。
解决此问题的一种方法是在您获得的每笔交易上将应用程序修改为“finishTransaction” - 因此清除支付队列。确保登录到所有可能与付款队列中的购买相关的帐户(也就是您用于该应用程序的所有测试帐户)。
我添加了
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
到我的 appDelegate didFinishLaunchingWithOptions 结束,它为我解决了这个问题。
2017年依然存在!
看起来像沙盒故障:尽管退出了沙盒用户帐户,但仍会记住该用户的 ID,并且该用户的不完整交易不断弹出。
我通过以下方式清除这些:
这将清除所有未完成的交易(如果您的“恢复购买”功能是正确的),因此该消息将不会出现在后续运行中(直到沙盒交易再次不完整......)
为我解决的问题类似于 kgaidis 的答案,但为了让这更容易,我只放置了多个:SKPaymentQueue.defaultQueue().finishTransaction(transaction as!SKPaymentTransaction)
进入 updatedTransactions 函数的购买状态。我在那里放置了大约 20 个并运行了应用程序。在应用程序购买了几个沙盒后,问题就消失了。