6

虽然我们可以在 iOS 6.0 的 pass 应用程序中以编程方式添加一个 pass,但我们的文档目录中有 .pkpass 文件,或者我们从服务器获取它。但是我已经搜索了所有苹果文档,其中给出了手动生成 .pkpass 文件的步骤。

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

4

1 回答 1

12

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

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

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

于 2012-10-12T04:28:04.473 回答