Спецификация не может извлечь архив. исключение при инициализации pkpass с помощью URL-адреса прохода, который генерируется с помощью passkit

При попытке отобразить пропуск в моем приложении, используя следующий код, я получаю сообщение об ошибке "Спецификация не может извлечь архив. Постоянно отсутствует исключение подписи PKpass". Пожалуйста, помогите мне воспользоваться этим исключением.

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

Я использую Xcode 5.2 для разработки и mashape для генерации проходов.

1 ответ

Решение

Предполагая, что ваш вопрос относится к PassKit API в Mashape, вам нужно добавить.pkpass в конец к URL, который возвращается из запроса на выдачу.

Необработанный URL-адрес предоставляет контекстный ответ в зависимости от того, вызывается ли он из браузера с поддержкой Passbook (попробуйте получить доступ к URL-адресу через Firefox на устройстве Android).

В твоем случае, [NSData dataWithContentsOfUrl: url]; получает HTML-ответ, который заставляет PKPass жаловаться на то, что он не может извлечь архив и впоследствии не может найти подпись.

Прикрепление .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,

Другие вопросы по тегам