ios - 我们可以在 Xcode 中以编程方式创建一个通行证(.pkpass 文件)吗?

标签 ios iphone xcode passbook

尽管我们可以在 iOS 6.0 的通行证应用程序中以编程方式添加通行证,但前提是我们的文档目录中有 .pkpass 文件,或者我们从服务器获取它。但是我搜索了所有苹果文档,其中给出了手动生成 .pkpass 文件的步骤。

使用 Xcode 以编程方式创建 .pkpass 文件是否可行。

最佳答案

.pkpass 文件由几个部分组成。必须以编程方式完成的最困难的组件是 list 文件的签名。其他部分很容易以编程方式在 iPhone 平台上组装。您可能会注意到 Apple 的文档使用 shell 命令来使用 OpenSSL 库计算此值。我不得不手动编写一个使用 OpenSSL C 库对 list 文件进行签名的函数,但由于缺乏示例和库的复杂性,这并不简单。 Apple 为 list 选择的签名函数不存在于他们的 CommonCrypto 框架中。

此外,为了在手机上签署这些通行证,凭据必须存在于二进制包或编译 Assets 中,如果您想保护个人资料和签名身份的完整性,这可能不是分发的好主意.

总而言之:这当然是可能的,并且可以使用现有的规范和库来实现。但是,我不建议在电话上这样做。这是相当困难的,如果做得不好可能会带来安全风险。此外,如果您将 OpenSSL 库合并到您的二进制文件中,那么您必须向 Apple 报告您在您的设备中合并了加密并且必须向政府注册 ERN。根据您所在的地区,您的代码可能还有其他导出条件(当然我不是律师,所以这是一个猜测)。

关于ios - 我们可以在 Xcode 中以编程方式创建一个通行证(.pkpass 文件)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12852077/

相关文章:

ios - 将 nsstring 添加到主包 ios 中的本地 html 文件

ios - 快速单击按钮时更改 tableView 文本标签

ios - swift uitableview 重新排序除最后一个单元格之外的单元格

ios - Netsuite 有 RESTful API 吗?

iphone - UIView 从Superview 中删除

iphone - ios内存泄漏

iphone - 与 NSLocalizedString( @"Text aka. key", @"Description")中使用的键具有不同的后备语言

iphone - 将类传递给函数

ios - 需要将 NSString 转换为 Nsdate

iphone - 在 Objective-C 中返回一个对象的所有属性