safari ios无法打开存折pkpass

我已经看到这个主题的一些话题,但没能find答案:

Safari无法打开我作为电子邮件用户发送的.pkpass文件

首先,我认为这可能与我的设置有关,但后来我发现我也无法打开示例.pkpass从这个网站http://www.tomttb.com/test/pass/full_sample/

我的文件和例子都有内容types设置为application / vnd.apple.pkpass

在Android上,我使用PassWallet App,可以下载.pkpass并将其添加到存折中。

有任何想法吗?

看了你的.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项需要一个整数时设置了一个string。

 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, 

此外,看起来您的相关date不是ISO8061格式 ,这也会导致通行证被拒绝。

要修复,请将relevantDate键更改为:

 "relevantDate" : "2014-02-28T12:00:00Z", 

至于如何诊断这些问题,只需将手机连接到运行Xcode的Mac,并从Organizer窗口监视设备控制台。 如果您需要更详细的信息,则可以从设备的“开发者”设置菜单中启用“附加存折logging”。


** 更新2 **

现在您的通行证失败,因为webServiceURL是一个安全的URL。 对于生产通行证,您的存折Web服务务必通过https

如果您的设备configuration为开发,那么您可以通过从“开发人员设置”菜单的“Passkittesting”部分中激活“允许HTTP服务”选项来绕过此设置。

此外,您的通行证不包含一个authenticationToken密钥。 指定webServiceURL时,这是一个强制性密钥( 阅读“存折Web服务手册”! )

debugging没有访问Xcode的Passbook将是非常棘手的,如果不是不可能的话。 build议购买Mac,或者采用Virualise Mac OSX的许多方法之一,或在PC硬件上运行Mac OSX。


** 更新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键仍然不是有效的ISO8601date!

要修复,请将relevantDate键更改为:

 "relevantDate" : "2014-05-28T12:00:00Z",