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

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

这是可行的编程方式使用Xcode创build一个.pkpass文件。 请build议。

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

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

总而言之:这当然是可能的,而且可以使用现有的规范和库来实现。 不过,我不会推荐在电话上做这个。 这是相当困难的,如果做得不好,可能会带来安全隐患。 此外,如果您将OpenSSL库并入您的二进制文件,那么您必须向Apple报告您在设备中包含了encryptionfunction,并且必须向政府注册ERN。 你的代码也可能有其他的出口条件,取决于你所在的地区(当然,我不是律师,所以这是一个猜测)。