首页 > 解决方案 > Bundle.main.url(forResource: "AppleIncRootCertificate", withExtension: "cer") == nil

问题描述

为了在SwiftiOS 应用程序中设置 Receipt-Validation(使用In-App-Purchase),我正在关注本教程:https ://www.raywenderlich.com/9257-in-app-purchases-receipt-validation-tutorial并在此处阅读:验证苹果在收据上签字

这是我目前遇到的一个问题。

在代码中我有这个:

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

当我检查它的值时,它是零。由于它应该用于提取更多信息,因此它显然不应该是 nil。问题是:代码或某些设置中可能有什么问题使这个为零?

这是我第一次实施 Receipt-Validation,所以很可能是我遗漏了一些基本的东西。

标签: iosswiftopensslpkcs#7receipt-validation

解决方案


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

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

给你nil,你没有这个证书。正如上面评论中所建议的,去这里下载苹果根证书下所需的证书 - > 苹果公司根证书。

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


推荐阅读