我正在使用 passkit(java)。我创建了通行证并尝试从 safari 安装。
当我从 mac mini safari 下载通行证时,它会下载并显示通行证。 但是当从 iphone6 和 iphone4 safari 下载通过时,它显示错误“safari 无法下载此文件”。
我也在更改 htaccess。
您可以在此处访问通行证:
http://103.14.127.126/devesh/test.html
最佳答案
您的通票包不包含图标。
Nov 28 17:34:28 pfr MobileSafari[2127] <Warning>: Invalid data error reading pass M5AULVCSR9.pass.egratify.gift/9128232779653468419. Pass does not contain icon.png/icon@2x.png/icon3x.png
Nov 28 17:34:28 pfr MobileSafari[2127] <Warning>: PassBook Pass download failed: The pass cannot be read because it isn’t valid.
您也不应该在 pass 包中包含 p12 或 PEM 格式的证书。我强烈建议您撤销此证书并重新颁发另一个证书。
修复这些问题后,您的通行证仍将无法加载,因为您的 pass.json 有一个 authenticationToken
key ,但缺少一个 webServiceURL
。您应该添加有效的 webServiceURL
或删除 authenitcationToken
key 。
您的最后一个问题是 passTypeIdentifier
键。这应该与用于签署通行证的证书名称相匹配。在这种情况下,pass.egiftfy.giftCupon
。
{
"formatVersion": 1,
"serialNumber": "9128232779653468419",
"passTypeIdentifier": "M5AULVCSR9.pass.egratify.gift",
"authenticationToken": "1234567890987653",
"description": "Devesh kumar",
"teamIdentifier": "M5AULVCSR9",
"organizationName": "OrgName",
"logoText": "Devesh kumar ka pass",
"foregroundColor": "rgb(255,255,255)",
"backgroundColor": "rgb(0,255,0)",
"barcode": {
"format": "PKBarcodeFormatQR",
"message": "ABCDEFG",
"messageEncoding": "UTF-8"
},
"storeCard": {
"primaryFields": [{
"key": "balance",
"label": "balance",
"value": "100",
"currencyCode": "EUR"
}]
}
}
更新
您通过仍然失败,因为 passTypeIdentifier
与您用于签署通过的证书不匹配。
Nov 28 19:14:33 pfr MobileSafari[2127] <Warning>: Invalid data error reading pass pass.egratify.gift/9128232779653468419. The passTypeIdentifier or teamIdentifier provided may not match your certificate, or the certificate trust chain could not be verified.
在十六进制编辑器中查看您的签名文件,看起来您现在正在使用 App Developer 证书而不是 Pass Type ID 证书进行签名。
关于java - Safari 无法下载此文件 (Passbook Pass),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27185063/