Быстрый проход json ответ на объект PKPass - PullRequest
0 голосов
/ 29 апреля 2020

Я создаю PKPass с моего сервера Firebase и пытаюсь отправить его в мое приложение IOS, чтобы пользователь мог добавить его в свой кошелек, но я не уверен, как преобразовать данные ответа JSON который я получаю в своем приложении IOS на необходимый PKPass объект.

JSON ответ:

{"Content-Length":"1093412","function-execution-id":"xx84qotfonme","Date":"Wed, 29 Apr 2020 00:44:00 GMT","Content-Disposition":"attachment; filename=Event.pkpass","Server":"Google Frontend","alt-svc":"h3-Q050=\":443\"; ma=2592000,h3-Q049=\":443\"; ma=2592000,h3-Q048=\":443\"; ma=2592000,h3-Q046=\":443\"; ma=2592000,h3-Q043=\":443\"; ma=2592000,h3-T050=\":443\"; ma=2592000,quic=\":443\"; ma=2592000; v=\"46,43\"","Etag":"W\/\"10af24-tF23uU9DIoMPnvm2jrbrN4e5JAg\"","x-cloud-trace-context":"104b4a56a5b82510599fa9ab75fcaf0b;o=1","x-powered-by":"Express","Content-Type":"application\/vnd.apple.pkpass; charset=utf-8"}

Кажется, что ответ содержит тикет, так как он имеет имя файла et c.

IOS Side:

var requestData : [String : String]? = [String : String]()
    requestData?.updateValue(postId, forKey: "postId");

    AF.request(URLString, method: .post, parameters: requestData).responseString { response in

        guard let resp = response.data else { return }

        do {
            let pass = try PKPass(data: resp)
            print(pass)
        } catch {
            print(error)
        }

Я получаю эту ошибку, когда пытаюсь передать данные ответа в PKPass object

Error Domain=PKPassKitErrorDomain Code=1 "The pass cannot be read because it isn’t valid." UserInfo={NSLocalizedDescription=The pass cannot be read because it isn’t valid., NSUnderlyingError=0x600003c91a70 {Error Domain=PKPassKitErrorDomain Code=1 "(null)"}}

Event.pass - это то, что предоставляет одно яблоко, и я добавил свои passTypeIdentifier & teamIdentifier, которые, кажется, работают нормально.

1 Ответ

0 голосов
/ 29 апреля 2020

Вы не можете просто изменить проход. json в примере. Манифест должен быть восстановлен и уволен.

Передача не удается загрузить, поскольку вы используете исходную подпись из примера, но вы изменили данные в проходе. json, что делает подпись недействительной.

...