gpt4 book ai didi

ios - 存折生成 PKPass 错误

转载 作者:可可西里 更新时间:2023-11-01 06:07:50 30 4
gpt4 key购买 nike

我在我的应用程序中添加存折,当系统是iOS6.0时,它可以正常工作。当系统是iOS7.1时,它会出现错误。

enter image description here

我查看代码发现

PKPass *newPass = [[PKPass alloc] initWithData:passData error:&error];

iOS6.0生成PKPass时得到正确的PKPass,iOS7.1时得到nil。

错误包含信息是:

Error Domain=PKPassKitErrorDomain Code=1 “无法读取通行证,因为它无效。” UserInfo=0x175cd2f0 {NSUnderlyingError=0x175c2c10 “不止一个字段有键 'phone'。字段键必须是唯一的。”, NSLocalizedDescription=无法读取通行证,因为它无效。

存折的数据是从服务器上获取的,代码如下

- (void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
[self.connectionData appendData:data];
}

获取数据写入文件后,代码如下:

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES);
NSString* filePath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"pk.pkpass"];

if ([self.connectionData writeToFile:filePath atomically:YES]) {

if (![PKPassLibrary isPassLibraryAvailable]) {

UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Error"
message:@"PassKit not available"
delegate:nil
cancelButtonTitle:@"Pitty"
otherButtonTitles:nil];
[alert show];
[alert release];

return;
}
}

写入文件后我想显示它,代码如下:

    NSString* passFile = [[NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES) objectAtIndex:0] stringByAppendingPathComponent:name];

NSString * newPassStr = [[NSString alloc] initWithContentsOfFile:passFile encoding:NSUTF8StringEncoding error:nil];

NSData *passData = [NSData dataWithContentsOfFile:passFile];

NSError* error = nil;
PKPass *newPass = [[PKPass alloc] initWithData:passData error:&error];

然后当我得到 PKPass *newPass 出现在 iOS7.1 中的错误。在 iOS6 中没问题。

谁能告诉我原因?非常感谢。

最佳答案

您的错误消息告诉您您需要知道的一切。

您的 pass.json 中有重复的 key 。您的 backFields 数组和您的 auxiliaryFields 数组都包含一个带有键 phone 的项目。根据Passbook Package Format Reference , 字段键必须是唯一的。

我注意到这个通行证是使用 Passsource 生成的。你可能想让kudit (Passsource 开发人员)知道,因为他的服务不应该允许生成这样的通行证。

关于ios - 存折生成 PKPass 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23926534/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com