2

当尝试使用以下代码在我的应用程序中显示通行证时,我收到错误消息“BOM 无法提取存档。PKpass 签名不断丢失异常”。请帮助我解决这个异常。

NSURL *url = [NSURL URLWithString:urlString];
NSData *passData = [NSData dataWithContentsOfUrl: url];
PKPass *pass = [[PKPass alloc] initWithData:passData error:&err];

我正在使用 Xcode 5.2 进行开发,并使用 mashape 生成通行证。

4

1 回答 1

0

假设您的问题与 Mashape 上的PassKit API有关,您需要将 .pkpass 附加到从问题请求返回的 URL 的末尾。

原始 URL 会根据是否从支持 Passbook 的浏览器调用它来提供上下文响应(尝试在 Android 设备上通过 Firefox 访问 URL)。

在您的情况下,[NSData dataWithContentsOfUrl: url];正在接收导致 PKPass 抱怨它无法提取存档并随后找不到签名的 HTML 响应。

附加.pkpass到 URL 会强制 API 交付原始 .pkpass 包。

因此,如果您的回答是:

{
  "success"        : true,
  "serial"         : "7114189133818574",
  "url"            : "https://r.pass.is/b93NuXKuX1Tj",
  "passbookSerial" : "1fBHoUz9zOOk0yGs47wDC",
  "shareID"        : "2HcFlmRLblKdQZsa4W9zkc",
  "uniqueID"       : "b93NuXKuX1Tj"
}

urlString应该是https://r.pass.is/b93NuXKuX1Tj.pkpass

于 2014-01-08T09:13:01.230 回答