菜鸟教程小白 发表于 2022-12-13 16:37:02

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


                                            <p><p>我正在使用 <a href="http://www.raywenderlich.com/23266/in-app-purchases-in-ios-6-tutorial-consumables-and-receipt-validation" rel="noreferrer noopener nofollow">Raywenderlich</a> 提供的 VerificationController在我的几个应用程序中,这太棒了。完全可靠、易于实现且有效。它已经在我的三个应用中运行了几个月。</p>

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

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

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

<pre><code>require(signature_length &gt; offsetof(struct signature_blob, certificate), outLabel);
require(signature_blob_ptr-&gt;version == 2, outLabel);
certificate_len = ntohl(signature_blob_ptr-&gt;cert_len);
</code></pre>

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

<p>任何人都可以了解正在发生的事情吗?这对我的应用程序组合显然是毁灭性的,我需要立即修复它。如果需要,我将暂时禁用验证并发布更新,但我想为已更改的内容找到修复...</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>在 <a href="https://forums.developer.apple.com" rel="noreferrer noopener nofollow">https://forums.developer.apple.com</a> 搜索“收据验证” </p>

<p>显然,证书更新刚刚使 VerificationController 停止工作。</p>

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

<p>至于上面的代码,signature_blob_ptr->version == 3 现在。但是在代码中使用 3 而不是 2 并不能解决问题,因为签名不再是 128 字节长。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - VerificationController 突然停止为所有应用程序工作,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/37312710/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/37312710/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - VerificationController 突然停止为所有应用程序工作