我们可以在Xcode中以编程方式创建一个pass(.pkpass文件)吗?

时间:2012-10-12 04:06:18

标签: iphone ios xcode

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

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

1 个答案:

答案 0 :(得分:10)

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

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

总结:这当然是可能的,并且可以使用现有的规范和库来实现。但是,我不建议在手机上这样做。这是相当困难的,如果做得不好可能会带来安全风险。此外,如果您将OpenSSL库合并到二进制文件中,则必须向Apple报告您在设备中加入了加密,并且必须向政府注册ERN。您的代码可能还有其他出口条件,具体取决于您所在地区(但我当然不是律师,所以这是猜测)。