21

有时我会收到一个非常烦人的对话框,其中包含以下文字:“点击继续并登录以检查下载。” 如果我登录(使用沙盒用户)或点击取消,对话框会立即再次显示。

我正在使用非续订订阅和非消耗性产品。

任何想法如何摆脱这个对话框?

谢谢

/马丁

4

7 回答 7

10

共识似乎是:

  • 问题始于 iOS 6
  • 如果您没有使用 Apple ID 登录“设置”,这似乎不会发生。
  • 打开飞行模式,然后像在“设置”中那样注销您登录的任何 Apple ID,然后将飞行模式保持开启约 15 分钟,这些消息将停止一段时间。
  • 擦拭设备并恢复不会让它消失
  • 有人对此提出了一个错误,并标记为重复,所以苹果似乎意识到了这个问题,但还不愿意对此做任何事情。
  • 有人猜测,当您的设备使用一个 ID 登录 Sandbox 并使用另一个 ID 登录 live store 时,就会发生这种情况。如果您正在测试应用内购买,请在开始测试之前退出您的主 ID。

这里有一些关于这个问题的更多讨论:

https://discussions.apple.com/message/21492551?ac_cid=tw123456#21492551

https://discussions.apple.com/thread/4412889?tstart=0

于 2013-05-18T22:24:57.563 回答
5

沙盒多次发出冗余对话框,非沙盒帐户不可用。如果您遵循 storekit 协议,则无需担心。我遇到了从 didReceiveResponse 代表发出的重复警报框的相同问题,但是我的应用程序获得了批准,并且在实际环境中没有问题。

于 2012-12-12T07:55:54.607 回答
1

我以最简单的方式解决了这个问题。当 AlertView 出现时,只需单击继续并使用该帐户登录。(在我的情况下,它甚至存储了从我的 iTunesConnect 中的测试用户列表中删除的旧帐户)。我收到了我正在测试我的 InAppPurchase 的 5 或 6 个帐户的警报,但是在我用所有这些帐户登录后,我不再收到它。希望这会有所帮助。

于 2013-05-31T11:56:26.443 回答
0

我有同样的问题。

我非常肯定,实际问题在于支付队列中有应用内购买,并且这些购买需要从队列中清除

这样做的代码:

[[SKPaymentQueue defaultQueue] finishTransaction:transaction];

我的应用程序有一个复杂的验证系统,在我调用上述方法之前需要通过它。如果用户在此期间退出应用程序或失去互联网连接,付款队列中将会有剩余的购买。

解决此问题的一种方法是在您获得的每笔交易上将应用程序修改为“finishTransaction” - 因此清除支付队列。确保登录到所有可能与付款队列中的购买相关的帐户(也就是您用于该应用程序的所有测试帐户)。

于 2015-09-08T16:28:48.007 回答
0

我添加了

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];

到我的 appDelegate didFinishLaunchingWithOptions 结束,它为我解决了这个问题。

于 2016-06-13T22:59:39.627 回答
0

2017年依然存在!

看起来像沙盒故障:尽管退出了沙盒用户帐户,但仍会记住该用户的 ID,并且该用户的不完整交易不断弹出。

我通过以下方式清除这些:

  • 出现提示时以问题用户身份登录,
  • 为该用户在应用程序中运行“恢复购买”功能(如果出现提示,请重新输入凭据)。

这将清除所有未完成的交易(如果您的“恢复购买”功能是正确的),因此该消息将不会出现在后续运行中(直到沙盒交易再次不完整......)

于 2017-10-07T11:53:07.237 回答
-2

为我解决的问题类似于 kgaidis 的答案,但为了让这更容易,我只放置了多个:SKPaymentQueue.defaultQueue().finishTransaction(transaction as!SKPaymentTransaction)

进入 updatedTransactions 函数的购买状态。我在那里放置了大约 20 个并运行了应用程序。在应用程序购买了几个沙盒后,问题就消失了。

于 2016-04-16T15:32:46.560 回答