查看您的 .pkpass 包后,您的问题是您的 pass.json 文件包含无效的 JSON。
尝试添加通行证时,设备控制台日志显示以下内容:
Feb 12 00:31:58 pfr MobileSafari[236] <Warning>: Invalid data error reading pass
/var/mobile/Applications/AF19C13B-113D-44B9-9067-1228253C82ED/Library/Caches/com.apple.mobilesafari/com.apple.Passbook/5BE44BA0-7E7F-4DFA-92ED-D5E41A984F82.pkpass/pass.json.
Could not read json from URL file:///var/mobile/Applications/AF19C13B-113D-44B9-9067-1228253C82ED/Library/Caches/com.apple.mobilesafari/com.apple.Passbook/5BE44BA0-7E7F-4DFA-92ED-D5E41A984F82.pkpass/pass.json:
Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)"
(Badly formed object around character 221.) UserInfo=0x148cca010 {NSDebugDescription=Badly formed object around character 221.}
后加逗号:
"foregroundColor": "rgb(255,111,15)"
并更改密钥:
"description" : '"totally cool party"',
到:
"description" : "\"totally cool party\"",
然后重新编译你的 .pkpass 包,你应该会很好。
** 更新 **
您的通行证现在失败,因为您在需要整数时为 formatVersion 键设置了一个字符串。
Feb 12 11:04:22 pfr MobileSafari[1825] <Warning>: Invalid data error reading pass pass.com.ticketino/2677326. Value for key 'formatVersion' must be of class NSNumber, but is actually of class __NSCFString.
Feb 12 11:04:22 pfr MobileSafari[1825] <Warning>: PassBook Pass download failed: The pass cannot be read because it isn’t valid
更改密钥:
"formatVersion": "1",
收件人:
"formatVersion":1,
另外,您的相关日期似乎不在ISO8061 format 中,这也会导致通行证被拒绝。
要修复,请将relevantDate 键更改为:
"relevantDate" : "2014-02-28T12:00:00Z",
至于如何诊断这些问题,只需将手机连接到运行 Xcode 的 Mac 并从 Organizer 窗口监控设备控制台。如果您需要更详细的信息,可以从设备上的开发者设置菜单中启用附加存折日志记录。
** 更新 2 **
现在您的通行证失败了,因为 webServiceURL 是一个安全 URL。对于生产通行证,您的 Passbook Web 服务必须通过 https 提供服务。
如果您的设备配置为开发,那么您可以通过激活开发人员设置菜单的 Passkit 测试部分中的“允许 HTTP 服务”选项来绕过此设置。
您的通行证也不包含authenticationToken 密钥。这是指定 webServiceURL (Read the Passbook Web Service Manual!) 时的必填键
在不访问 Xcode 的情况下调试 Passbook 将非常棘手,如果不是不可能的话。建议要么购买 Mac,要么采用Virualise Mac OSX 或 run Mac OSX on PC Hardware. 的多种方式之一
** 更新 3 **
Feb 12 23:21:36 pfr MobileSafari[225] <Warning>: Invalid data error reading pass pass.com.ticketino/2678239. Unable to parse relevantDate 28-05-2014T12:00:00Z as a date. We expect dates in "W3C date time stamp format", either "Complete date plus hours and minutes" or "Complete date plus hours, minutes and seconds". For example, 1980-05-07T10:30-05:00.
Feb 12 23:21:36 pfr MobileSafari[225] <Warning>: PassBook Pass download failed: The pass cannot be read because it isn’t valid.
您的relevantDate 密钥仍然不是有效的 ISO8601 日期!
要修复,请将relevantDate 键更改为:
"relevantDate" : "2014-05-28T12:00:00Z",