Bundle.main.url(forResource:“ AppleIncRootCertificate”,withExtension:“ cer”)==无

时间:2019-04-06 09:48:38

标签: ios swift openssl pkcs#7 receipt-validation

为了在Swift iOS应用(使用In-App-Purchase)中设置收据验证,我正在学习本教程:https://www.raywenderlich.com/9257-in-app-purchases-receipt-validation-tutorial,并在此处阅读:验证Apple Signed收据

这是我目前遇到的问题。

在代码中我有这个:

Bundle.main.url(forResource: "AppleIncRootCertificate", withExtension: "cer")

当我检查它的值时,它为零。由于应该将其用于提取更多信息,因此显然不应为零。问题是:在代码或某种设置上使其无效的错误可能是什么?

这是我第一次实现Receipt-Validation,所以很可能是我缺少一些基本知识。

1 个答案:

答案 0 :(得分:1)

我认为您可能已经解决了问题,但是这对于其他人如何清楚地解决问题很有用。因此,如果

Bundle.main.url(forResource: "AppleIncRootCertificate", withExtension: "cer")

给您nil,您没有此证书。如以上注释中所建议,转到here并下载所需的证书,该证书位于Apple根证书-> Apple Inc.根证书中。

现在,您需要将下载的证书添加到目标中。移至目标的构建阶段,展开“副本捆绑资源”,然后按“ +”按钮。然后选择“打开其他...”并选择证书。选中“如果需要导入”框或类似的框,然后启动一个应用程序。现在你不应该得到零。