сберкнижка не сохраняет купоны

Я попробовал учебник по сберегательной книжке: http://www.raywenderlich.com/20734/beginning-passbook-part-1, который был рекомендован в каком-то другом потоке SO некоторое время назад.

Все прошло гладко, кроме:

  1. Я поместил файл .pkpass на локальный веб-сервер, я попытался щелкнуть прямую ссылку на файл, надеясь, что он откроется на моем симуляторе / устройстве iOS, но все, что я получил, это «сафари не удалось загрузить файл». То же самое произошло с официальными примерами пропусков iOS в Руководстве по программированию Passbook. Во время работы симулятора в журнале консоли не появляется никаких ошибок.

  2. Я попытался поместить pkpass в электронное письмо, открыть его с реального устройства, все в порядке, но когда я нажимаю «добавить», купон не добавляется в сберегательную книжку. Ошибки тоже не появляются.

  3. Я попытался создать пропуск с помощью passsource.com. Если я использую их метод «на лету», я получаю хороший купон, и я могу его сохранить. Если я выберу «загрузить файл pkpass», а затем использую его, как описано выше в № 1/№ 2, - те же ошибки.

Купон подписан правильно, с использованием правильного идентификатора команды и идентификатора типа.

Мой JSON (я исказил идентификаторы команды/типа):

{
  "formatVersion" : 1,
  "passTypeIdentifier" : "pass.com.xxx.xx.xxx",
  "serialNumber" : "123",
  "teamIdentifier" : "XXXXXXXX",
  "organizationName" : "my brand",
  "description" : "my coupon",

  "logoText" : "logo text",
  "foregroundColor" : "rgb(255, 255, 255)",
  "backgroundColor" : "rgb(135, 129, 189)",
  "labelColor" : "rgb(45, 54, 129)",

  "barcode" : {
      "message" : "650438-5103453453",
      "format" : "PKBarcodeFormatPDF417",
      "messageEncoding" : "iso-8859-1"
  },

  "coupon" : {
      "primaryFields" : [
          {
              "key" : "offer",
              "label" : "for you",
              "value" : "Free hug"
          }
      ]
  }
}

Я проверил json с помощью онлайн-инструмента проверки, он действителен.

есть идеи, почему купон не сохраняется/загружается?

спасибо


person Sagi Mann    schedule 20.11.2012    source источник


Ответы (1)


Я только что нашел причину проблемы. Кажется, что симулятор поддерживает перетаскивание pkpass из Finder на Sim. Если я это сделаю, я ДЕЙСТВИТЕЛЬНО увижу подробное сообщение об ошибке в системном журнале (я использую консольное приложение), поэтому я обнаружил проблему: 1. Мой json был изменен после того, как я создал его сигнал в manifest.json, поэтому я обновил 2. Если я хочу, чтобы файл pkpass служил пропуском с веб-сервера, недостаточно указать прямую ссылку на него, мне также нужно изменить тип содержимого на application/vnd.apple.pkpass

После того, как я решил обе эти проблемы, я смог обслуживать файл pkpass со своего веб-сервера.

person Sagi Mann    schedule 21.11.2012
comment
Можно поподробнее о последней части. Я задал вопрос, чтобы вы могли ответить там и получить кредит. stackoverflow.com/q/13846820/1015071 - person Jesse Black; 12.12.2012
comment
Хороший совет о перетаскивании на сим из Finder. - person PassKit; 04.01.2013