>我从itunesconnect删除了该测试用户
>一旦应用启动我调用[[SKPaymentQueue defaultQueue] addTransactionObserver:self]
>在为该特定测试用户输入密码后,不接收到支付队列更新通知,或者点击取消
> [SKPaymentQueue defaultQueue] .transactions.count总是为0,所以我无法手动完成未完成的事务
>我已从设备中删除应用程序,重新启动设备 – 仍然要求密码
>我从设置中注销用户 – > iTunes&应用商店
>在取消对话框请求密码后,不知何故,我可以使用另一个测试用户登录,但下次我仍然会收到旧测试用户的密码对话框.
唯一的事情是改变包id,这在我的情况下是不可取的.希望有人知道如何摆脱未完成的交易的其他方法.
解决方法
不要:
永远不会删除沙盒测试用户.这使得无法解决问题,您将无限循环,直到交易最终消失为止….它会消失,但需要很长时间,如数天或数周.
>如果您删除沙盒测试用户,当您随后反复提示(例如每次您的App设置IAP)登录到测试用户商店帐户以完成交易时,您不能因为用户被删除.您也可以将测试用户添加回来,因为开发者门户网站会说用户ID已被使用.
>不要:删除应用程序或重新安装iOS或任何其他此类BS.它没有任何效果,不能解决问题,浪费了大量的时间.
做:
>对所有交易调用FINISH.如果由于某种原因中断,只需在App的后续运行中完成.该应用将重复发送支付队列通知,直到您打电话完成,给您机会调用[[SKPaymentQueue defaultQueue] finishTransaction:transaction];这是故意的,并且是对中断交易的预警.
而已!完成所有交易,否则您将被发送到无尽循环地狱重复的请求,以登录一个不存在的测试用户App Store帐户每一次您的应用程序在该设备上启动:(