Спецификация не может извлечь архив. исключение при инициализации 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
,