【发布时间】:2013-06-24 13:48:08
【问题描述】:
我已经设置了一个返回 PKPass 的服务器。如果我将 URL 复制到浏览器,则会显示一个通行证(在我的 Mac 和我的 iPhone 中)。 我用来下载通行证的代码如下:
NSData *data = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:kAPIPass]];
if (nil != data) {
PKPass *pass = [[PKPass alloc] initWithData:data error:nil];
PKAddPassesViewController *pkvc = [[PKAddPassesViewController alloc] initWithPass:pass];
pkvc.delegate = self;
[self presentViewController:pkvc
animated:YES
completion:^{
// Do any cleanup here
}
];
}
无论如何,当我运行此代码时,出现以下错误:
* 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“仅支持 RGBA 或 白色空间,这个方法是个hack。'
我不知道是什么错误...当我使用 Safari 下载该通行证时,它似乎还可以,甚至代码似乎也可以(只有 3 行简单的行...)有 Passkit 经验的人可以帮助我吗?
编辑:奇怪的是,完全相同的代码正在一个全新的项目中运行
编辑 2: 从 AppDelegate 中删除以下行,删除崩溃,这很奇怪!
[[UINavigationBar appearance] setTintColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"navbar_bg_gen.png"]]];
【问题讨论】:
-
您能发布一个指向您的 .pkpass 捆绑包的链接吗?听起来您可能正在为颜色使用 base16 哈希值,而不是 RGB 值,但需要查看 pass.json 以确定。
-
颜色定义为:"backgroundColor" : "rgb(25,143,133)", "foregroundColor" : "rgb(255,255,255)",