我在我的应用程序中提供存折传递时遇到麻烦。当用户点击“添加到存折”按钮时,应用程序连接到服务器,下载动态创建的.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.
webservice链接使用https://,URL返回有效的.pkpass文件,内容类型为application / vnd.apple.pkpass。我还更新并检查了所有信息(团队标识符,passTypeIdentifier)证书(也是WWDR),如错误所示,但没有任何变化。奇怪的是,它适用于iOS6,但不适用于iOS7。
非常感谢任何帮助!
答案 0 :(得分: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证书与您的WWDC证书之间存在一些细微的差异,因此我首先将您的WWDC证书替换为Apple Website中的最新证书。
同时检查您的服务器时间和签名日期和时间,以及Apple Developer订阅仍然有效。
如果您使用第三方库对通行证进行签名,请检查它是否已正确更新以符合签名日期和WWDC证书包含要求 - 由于这些要求成为强制性要求,因此许多公共库尚未更新。