SKPaymentQueue addTransactionObserver在应用内购买后在启动时询问App Store密码
我的应用程序正在使用应用内购买,我的大多数用户可以毫无问题地购买。对于这些人,我的应用程序在购买成功后下载内容,他们很高兴。
但是,对于越来越多的用户,一旦他们完成了成功的应用内购买,他们就会在每次应用启动后被要求提供App Store密码。我相信这是在致电:
[[SKPaymentQueue defaultQueue] addTransactionObserver:observer];
我根据Apple的应用内购买指南中的第6步在启动时调用它:
存档指南:https://web.archive.org/web/20130515222703/https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StoreKitGuide/AddingaStoretoYourApplication/AddingaStoretoYourApplication.html
实际指南:https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/DeliverProduct.html#//apple_ref/doc/uid/TP40008267-CH5-SW4
我的猜测是,出于某种原因,Apple的应用内购买服务器没有注册交易成功完成 - 即使我打电话
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
当交易完成并且我的内容已成功下载时。
2个问题:
还有其他人看到这个吗?
有没有人有建议的修复?
BOUNTY编辑:
这是一个使用不同Apple-ID制作的交易。这就是为什么除非你在对话框中键入正确的凭据,否则无法完成。该问题应该是:
如何防止此类死机事务(事务尚未完成,用户没有网络,同时更改App-ID)?
你怎么能修剪SkPaymentQueue
?
没有找到相关结果
已邀请:
14 个回复
械怒等
对于交易的所有三种状态:SKPaymentTransactionStatePurchased,SKPaymentTransactionStateRestored,SKPaymentTransactionStateFailed。
纫合峭
即使我没有使用我的应用程序(在主屏幕或其他应用程序中),它也会偶尔出现,这真的很烦人。环顾四周,这个问题似乎有很多建议的答案,但我终于从我收集的内容中找到了一个解决方案。 注意:在第1步之前,我已删除iTunes Connect中的测试沙盒帐户。我不确定这是否会影响解决方案。 为了解决这个问题,这就是我所做的: 从Xcode运行您的应用程序。 等待提示出现。输入所需帐户的密码,然后点按“确定”。 按设备上的主屏幕按钮。 从Xcode中杀死应用程序。 从设备中删除应用程序。 退出iTunes& App Store中的App Store。 关闭设备,然后重新打开。 从App Store购买东西。当它提示您时,请使用生产Apple ID帐户登录。 (我假设你应该能够在设置应用程序下的iTunes& App Store中使用生产帐户登录,但这就是我的做法)。 返回Xcode并再次运行您的应用程序。 (这应该是一个新的安装,因为你之前删除了应用程序。) 等待登录提示出现。 点按取消。一个对话框说“需要登录。点击继续并登录以检查下载。[环境:沙箱]”应该出现。这是与以前的关键区别。当我在询问密码时按下“取消”时,我从未出现过此对话框。 点按继续。 输入帐户的密码。 而已。从那时起,每当我运行我的应用程序时,登录提示就会停止,并且也会在随机时间停止。 希望这可以帮助!
功飘
丧泉缝锋
锑寝粒
耐扫鹤胶鞭
根本无法帮助。 所以这就是我要解决这个问题的方法: 无论app多少次,都输入每个帐户的密码 商店要求 - 我为3个帐户输入6次 - 直到它从不问 再次。 转到设置并注销苹果ID。 正常退出应用程序 - 不要在xcode中终止它。然后杀死任务列表中的进程。 从设备中删除应用程序(只需删除该应用程序将无法正常工作,它仍然会要求输入密码) 重启设备 从XCode /再次运行应用程序在您的情况下从应用商店重新安装应用程序。 使用iTunes测试用户时受到预期序列的启发
久坡
嘘崇蔡对
在
感秆暴壳
泉秘胁
寇剩
锑寝粒
一旦删除,密码请求就会停止。 我离开了:
in和应用程序现在已经被批准了。
稍惮
。
恋卡
3)立即关闭应用程序。 4)退出测试帐户(通过设置) 5)启动应用程序 现在每次启动应用程序时,它都会弹出“登录”表单。如果我输入密码没关系。如果我购买或恢复购买并不重要。如果我删除并重新安装应用程序并不重要。每次启动应用程序时,都会显示iTune登录信息。 修复:硬重启设备。 这是我不知道的。这会发生在生产环境中(已发布的应用程序和实际的苹果登录)吗?我希望不是。