1

我在我的应用程序中提供存折通行证时遇到了麻烦。当用户点击“添加到存折”按钮时,应用程序连接到服务器,下载动态创建的 .pkpass 文件并尝试显示它。在 iOS6 上一切正常,没有错误,通行证按预期显示。但是当我在 iOS7 上尝试时,出现以下错误:

Invalid data error reading pass pass.com.domain.discount/2500000.
The passTypeIdentifier or teamIdentifier provided may not match your certificate, or the certificate trust chain could not be verified.
Error adding pass The pass cannot be read because it isn’t valid.

Web 服务链接为 https://,URL 返回一个有效的 .pkpass 文件,内容类型为 application/vnd.apple.pkpass。我还按照错误提示更新并检查了所有信息(团队标识符、passTypeIdentifier)证书(还有 WWDR),但没有任何变化。奇怪的是它适用于 iOS6 但不适用于 iOS7。

任何帮助将不胜感激!

4

1 回答 1

3

您的通行证无法在 iOS6 和 iOS7 设备上提取。

iOS7 日志

Oct 21 12:11:23  passd[11897] <Warning>: Verifying structure and signature for pass pass.com.puma.trac.discount/2500000
Oct 21 12:11:23  passd[11897] <Warning>: Error evaluating trust:  [leaf CheckLeafMarkerOid]
Oct 21 12:11:23  passd[11897] <Warning>: Signature validation: *** FAILED ***
Oct 21 12:11:23  passd[11897] <Warning>: Invalid data error reading pass pass.com.puma.trac.discount/2500000. The passTypeIdentifier or teamIdentifier provided may not match your certificate, or the certificate trust chain could not be verified.

iOS6 日志

Oct 21 12:43:25 #pfr passd[185] <Error>: Oct 21 12:43:25  SecTrustEvaluate  [leaf CheckLeafMarkerOid]
Oct 21 12:43:25 #pfr passd[185] <Warning>: Invalid data error reading pass pass.com.puma.trac.discount/2500000. The passTypeIdentifier or teamIdentifier provided may not match your certificate, or the certificate trust chain could not be verified.

查看您的签名,据我所知,没有您的证书,似乎包含 WWDC 证书,并且用于签名的证书的团队 ID 等于 pass.json 中的团队 ID。

我可以看到已知良好通行证中的 WWDC 证书与您的证书之间存在一些细微差异,因此我将首先用Apple 网站上的最新证书替换您的 WWDC 证书。

还要检查您的服务器时间和签名日期和时间,以及您的 Apple Developer 订阅是否仍然有效。

如果您使用第三方库签署通行证,请检查它是否已正确更新以满足签署日期和 WWDC 证书包含要求 - 由于这些要求成为强制性要求,许多公共图书馆尚未更新。

于 2013-10-21T04:58:25.693 回答