• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - VerificationController 突然停止为所有应用程序工作

[复制链接]
菜鸟教程小白 发表于 2022-12-13 16:37:02 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在使用 Raywenderlich 提供的 VerificationController在我的几个应用程序中,这太棒了。完全可靠、易于实现且有效。它已经在我的三个应用中运行了几个月。

但是,两天前,所有三个应用程序突然停止正常工作。现在,对于我的实时用户和我自己的测试帐户,每笔购买都被无一异常(exception)地标记为无效。我没有对应用程序或它们的后端进行任何更改,事实上我一直在搬公寓,所以我一周或更长时间没有碰过它们。所有三个应用程序的变化都是即时的,我开始收到投诉是可以理解的。

问题似乎出在 checkReceiptSecurity() 函数中(当它需要为有效交易返回 YES 时,它总是返回 NO),但该函数中的代码超出了我的理解能力。我希望有人遇到过这样的事情,或者甚至现在正在经历,并且知道解决方案?

据我所知,这似乎发生在第二行(VerificationController.m 第 158 行)。

require(signature_length > offsetof(struct signature_blob, certificate), outLabel);
require(signature_blob_ptr->version == 2, outLabel);
certificate_len = ntohl(signature_blob_ptr->cert_len);

注释为“确保签名 blob 足够长以安全地提取版本和 cert_len 字段,然后对字段执行完整性检查”,这很有帮助。当它到达 signature_blob_ptr 行时,它突然跳到函数的末尾,我认为这意味着它未能通过与 Apple 的某些响应的版本号有关的检查?

任何人都可以了解正在发生的事情吗?这对我的应用程序组合显然是毁灭性的,我需要立即修复它。如果需要,我将暂时禁用验证并发布更新,但我想为已更改的内容找到修复...



Best Answer-推荐答案


https://forums.developer.apple.com 搜索“收据验证”

显然,证书更新刚刚使 VerificationController 停止工作。

明显但一点也不快的解决方法是使用更新的收据验证处理。见:https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Introduction.html#//apple_ref/doc/uid/TP40010573-CH105-SW1

至于上面的代码,signature_blob_ptr->version == 3 现在。但是在代码中使用 3 而不是 2 并不能解决问题,因为签名不再是 128 字节长。

关于ios - VerificationController 突然停止为所有应用程序工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37312710/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap