iOS 应用程序每次启动时都要求输入密码

iOS app asks for password every time it is launched

我正在我的设备上测试一个新应用,今天,我开始集成 StoreKit 以进行应用内购买。

问题是每次我启动该应用程序时,它都会询问我的沙盒帐户密码。下面,您将找到有关该问题的一些详细信息。

  1. 我第一次启动该应用程序时,一切都按预期进行。完成应用内购买时没有问题(我的沙盒用户 - 我们称之为 testuser1@t.com -)。
  2. 停止应用程序,集成一个按钮"Restore purchases"。不幸的是,我忘记在完成时添加 "finishTransaction"(不确定这是否是问题所在)。
  3. 从现在开始,每次我启动应用程序时,它都会不断询问我 testuser1@t.com 的密码。

StoreKit 开始在不是 rootView 的视图中执行它的操作,所以我排除了我以编程方式投射错误...

那么,我之后做了什么?

  1. 已从设备中删除应用并重新安装(重启后)
  2. 已删除沙箱用户(并创建了一个新用户 - 比如说 testuser2@t.com -)。我成功使用了新帐户以获得新的 IAP。
  3. 清除了我设备上的设置
  4. 已从 iTunes Connect 中删除 IAP

问题依旧。请记住,要求的密码是 testuser1@t.com(第一个测试帐户!)

Stopped the app, integrated a button "Restore purchases". Unfortunately, I forgot to add "finishTransaction" at completition (not sure if this could be the problem)

确实是这个问题!

如果队列中还有交易,Store Kit 将始终要求您重新进行身份验证。要摆脱这些交易,只需调用:

for transaction in SKPaymentQueue.defaultQueue().transactions {
    SKPaymentQueue.defaultQueue().finishTransaction(transaction)
}