Safari 在下载 .pkpass 时抛出错误
Safari is throwing a error while downloading .pkpass
我有一个带有 node.js 后端的 Web 服务器,它构建了一个 .pkpass 文件(经过认证,一切正常)。
在 pass.json webServiceURL = 'addressToBackEndpoint' 中用于通行证更新和 authenticationToken(只是随机的 32 个字母)。
当我尝试将生成的通行证安装到 walletpasses(在 android 上)时,它工作正常,没有错误。但是在 IPhone 上从相同的 URL 下载相同的通行证给我带来了 safari
的错误
Download Failed - Safari cannot download this file.
没有日志,无法找出问题所在。
PkPassValidator 说这次 pass 没有发现问题。
有什么错误的想法以及如何让它发挥作用吗?
您是否将下载请求的 header 设置为。我遇到了通过设置请求 header 修复的相同错误。这是相同的 PHP 代码,但问题似乎相同
$response->headers->set('Content-Description',' File Transfer');
$response->headers->set('Content-Disposition',' attachment; filename=' . $quoted);
$response->headers->set('Content-Transfer-Encoding',' binary');
$response->headers->set('Connection',' Keep-Alive');
$response->headers->set('Expires',' 0');
$response->headers->set('Cache-Control',' must-revalidate, post-check=0, pre-check=0');
$response->headers->set('Pragma',' public');
$response->headers->set('Content-Length', $size);
$response->headers->set('Content-Type', mime_content_type($filename));
$response->setContent($content);
已解决:
经过 closer 查看 pass.json,发现 url 中的 'o' 字母(被复制并粘贴到 pass.json 中)是另一种编码(虽然看起来很相似)
为确保一切正常,您可以使用一些编码校验器。
提示:使用 Apple 最好不要玩彩票,而是从 mac os 安装一个 iOS 模拟器(在我的情况下 Mac OS 在 VMWare 中),然后使用 MAC 控制台(不是 phone 的)启动模拟器,然后在连接的设备
上搜索 'pass' 日志
我有一个带有 node.js 后端的 Web 服务器,它构建了一个 .pkpass 文件(经过认证,一切正常)。
在 pass.json webServiceURL = 'addressToBackEndpoint' 中用于通行证更新和 authenticationToken(只是随机的 32 个字母)。
当我尝试将生成的通行证安装到 walletpasses(在 android 上)时,它工作正常,没有错误。但是在 IPhone 上从相同的 URL 下载相同的通行证给我带来了 safari
的错误Download Failed - Safari cannot download this file.
没有日志,无法找出问题所在。 PkPassValidator 说这次 pass 没有发现问题。
有什么错误的想法以及如何让它发挥作用吗?
您是否将下载请求的 header 设置为。我遇到了通过设置请求 header 修复的相同错误。这是相同的 PHP 代码,但问题似乎相同
$response->headers->set('Content-Description',' File Transfer');
$response->headers->set('Content-Disposition',' attachment; filename=' . $quoted);
$response->headers->set('Content-Transfer-Encoding',' binary');
$response->headers->set('Connection',' Keep-Alive');
$response->headers->set('Expires',' 0');
$response->headers->set('Cache-Control',' must-revalidate, post-check=0, pre-check=0');
$response->headers->set('Pragma',' public');
$response->headers->set('Content-Length', $size);
$response->headers->set('Content-Type', mime_content_type($filename));
$response->setContent($content);
已解决:
经过 closer 查看 pass.json,发现 url 中的 'o' 字母(被复制并粘贴到 pass.json 中)是另一种编码(虽然看起来很相似)
为确保一切正常,您可以使用一些编码校验器。
提示:使用 Apple 最好不要玩彩票,而是从 mac os 安装一个 iOS 模拟器(在我的情况下 Mac OS 在 VMWare 中),然后使用 MAC 控制台(不是 phone 的)启动模拟器,然后在连接的设备
上搜索 'pass' 日志