在运行时编辑Passbook Pass(.pkpass)文件?

时间:2012-10-26 15:26:08

标签: objective-c ios passbook

我知道如何使用我的Mac上的工具制作.pkpass文件,然后将其压缩并签名(使用 signpass 工具),但我怎么能在编辑期间编辑文件iOS应用程序中的运行时?

我意识到在Apple documentation中,他们希望您使用服务器进行任何通行证更新/编辑,但这不是我的目标(我意识到那里的安全问题,那就是不是这个问题的焦点)。

我该怎么做(我不是要求代码)?在文档中,这是在运行时实际操作传递的唯一提及(我已经看到):

In a production environment, the signing and compressing would be part of the system that generates passes.

关于如何做到这一点的任何想法?是否有任何第三方API允许这样做(我已经检查了Passdock和Passsource,但是Passdock没有Obj-C API而且Passource也不太清楚。)

2 个答案:

答案 0 :(得分:3)

正如您已经说过的,Apple不希望您在ios应用程序中创建自己的.pkpass文件。当然可以这样做,Apple不能允许您包含或获取证书,尽管如果他们愿意,他们肯定会拒绝您的应用程序。

您可以调整来自任意数量的文章/教程的代码来构建各种文件,创建签名(可能是最神秘和最困难的部分),并在您的应用程序中创建.pkpass文件。 signpass应用程序中的一些代码可能是可重用的,如果它所依赖的框架在iPhone SDK中。

也许您可以查看一些已经存在的服务,这些服务提供了可以通过手机使用的高级API的传递生成。 例如This one,我提出的内容没有任何保证或认可。

答案 1 :(得分:2)

您将无法编辑.pkpass文件,因为它已经过签名。如果您更改它,签名将无效。

您可以做的唯一编辑是pre-pkpass生成。如果您可以在运行时创建.pkpass文件,则可以在签名之前对其进行编辑。否则,使用推送通知生成后编辑它们的唯一其他选项,但只允许编辑特定字段。