Ошибка обновления Passbook — пропуск не может быть прочитан, поскольку он недействителен

Я пытаюсь отправить данные JSON нового пропуска на свое устройство, чтобы обновить свой пропуск в Apple Wallet после части «Получение последней версии пропуска» в этот документ.
Новые данные json точно такие же, как данные json, которые я использовал для успешного создания прохода, за исключением того, что backgroundColor изменен с # 3e7cc8 на # 000000 (для тестирования), но я получил ошибку «Недопустимые данные json» все время.
Вот успешное создание данных json

{
   "description":"description",
   "formatVersion":1,
   "organizationName":"organizationName",
   "passTypeIdentifier":"passTypeIdentifier",
   "serialNumber":"serialNumber",
   "teamIdentifier":"teamIdentifier",
   "foregroundColor":"#ffffff",
   "backgroundColor":"#3e7cc8",
   "labelColor":"#ffffff",
   "barcode":{
      "message":"d568866a45dfc010ac680a9d06e5a48feb9216a2",
      "messageEncoding":"utf-8",
      "format":"PKBarcodeFormatQR"
   },
   "logoText":"logoText",
   "storeCard":{
      "headerFields":[

      ],
      "primaryFields":[

      ],
      "secondaryFields":[
         {
            "key":"name",
            "label":"",
            "value":"Nick"
         },
         {
            "key":"points",
            "label":"",
            "value":"0 Points"
         }
      ],
      "auxiliaryFields":[

      ],
      "backFields":[
         {
            "key":"email",
            "label":"Email",
            "value":"[email protected]"
         },
         {
            "key":"phone",
            "label":"Phone",
            "value":"+841689984964"
         }
      ],
      "locations":[

      ]
   },
   "authenticationToken":"authenticationToken",
   "webServiceURL":"https://mydomain/passbook"
}

и недопустимое обновление данных json

{
   "description":"description",
   "formatVersion":1,
   "organizationName":"organizationName",
   "passTypeIdentifier":"passTypeIdentifier",
   "serialNumber":"serialNumber",
   "teamIdentifier":"teamIdentifier",
   "foregroundColor":"#ffffff",
   "backgroundColor":"#000000",
   "labelColor":"#ffffff",
   "barcode":{
      "message":"d568866a45dfc010ac680a9d06e5a48feb9216a2",
      "messageEncoding":"utf-8",
      "format":"PKBarcodeFormatQR"
   },
   "logoText":"logoText",
   "storeCard":{
      "headerFields":[

      ],
      "primaryFields":[

      ],
      "secondaryFields":[
         {
            "key":"name",
            "label":"",
            "value":"Nick"
         },
         {
            "key":"points",
            "label":"",
            "value":"0 Points"
         }
      ],
      "auxiliaryFields":[

      ],
      "backFields":[
         {
            "key":"email",
            "label":"Email",
            "value":"[email protected]"
         },
         {
            "key":"phone",
            "label":"Phone",
            "value":"+841689984964"
         }
      ],
      "locations":[

      ]
   },
   "authenticationToken":"authenticationToken",
   "webServiceURL":"https://mydomain/passbook"
}

Что не так с моим обновлением данных json? Пожалуйста помоги.


person Hoang Trung    schedule 06.10.2016    source источник
comment
Если вы попытаетесь открыть проход на устройстве iOS, журнал (например, из XCode) обычно укажет вам точную проблему.   -  person Tomas McGuinness    schedule 06.10.2016
comment
@tomasmcguinness Пропуск успешно создан. Я сталкиваюсь с проблемой, когда пытаюсь отправить обновленные данные json после получения последней версии пропуска в этот документ   -  person Hoang Trung    schedule 06.10.2016
comment
iOS по-прежнему будет выводить журнал с указанием причины сбоя обновления. Когда вы отправили push-уведомление, iOS должна пройти через процесс опроса вашего API и сообщить, что он делает.   -  person Tomas McGuinness    schedule 06.10.2016
comment
@tomasmcguinness Хорошо, понятно. Спасибо за совет.   -  person Hoang Trung    schedule 06.10.2016
comment
Если у вас ничего не получится, отправьте мне пропуск, и я посмотрю, что выйдет из журнала.   -  person Tomas McGuinness    schedule 06.10.2016


Ответы (2)


Если вы уверены, что единственное, что изменилось, — это backgroundColor, то это предполагает проблему с манифестом/подписью или отсутствие изображения значка в обновленном пакете. Возможно, стоит разархивировать обновленный пакет и дважды проверить, содержит ли он то, что, по вашему мнению, он должен содержать.

Есть вероятность, что #000000 вызовет крайний случай (поскольку он равен нулю), но это можно исключить с помощью быстрой проверки другого тестового значения, такого как #ff0000.

Как заявил Томас в комментариях, журналы устройств в Xcode должны сообщить вам точную причину сбоя.

person PassKit    schedule 06.10.2016
comment
Мне интересно, нам нужно вернуть пакет проходов или просто передать данные json? - person Hoang Trung; 07.10.2016
comment
Вам необходимо вернуть новый, полный, подписанный комплект пропусков. - person PassKit; 07.10.2016

Я не совсем уверен, но документация гласит:

Цвет фона прохода в виде тройки RGB в стиле CSS. Например, rgb(23, 187, 82)

Вы можете попробовать следовать формату, указанному в документации.

person ramacode    schedule 06.10.2016
comment
Но он успешно создан с помощью backgroundColor:#3e7cc8. Anw, я попытаюсь изменить его на тройку RGB в стиле CSS. Спасибо. - person Hoang Trung; 06.10.2016