【发布时间】:2020-04-29 01:00:02
【问题描述】:
我正在从我的 firebase 服务器创建一个 PKPass 并尝试将其发送到我的 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"}
似乎响应包含票证,因为它具有文件名等。
IOS端:
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 对象中传递响应数据时出现此错误
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,这似乎工作正常。
【问题讨论】:
-
重复的stackoverflow.com/questions/61479545/… pass 签名不正确。
-
您不能只是简单地更改示例中的 pass.json。清单必须重新生成并退出。