我正在编写 Passbook 实现的服务器部分。存折“卡片”将是静态的,不会改变。我真的必须使用服务器来编译pkpass
文件吗?
我问的原因是,在 Apple 的示例项目中,他们有 Objective-C 代码来创建和签署存折。如果我只打算使用不会更新的静态卡,那么pkpass
当我可以在应用程序中本地进行编译时,我认为在服务器上编译没有任何意义。
如果 pass 是真正静态的,即它不包含webServiceURL
orauthenticationToken
键并且不包含用户提供的可变数据,那么您不需要服务器。
您仍然需要创建并签署通行证,但这可以使用 Apple 提供的命令行工具来完成。
拥有 .pkpass 包后,您可以将签名的 .pkpass 包添加到您的应用包中,或者将其发布到 Web 服务器或 CDN(例如 Amazon S3)。要从您的应用程序中将其添加到用户 Passbook,请从您的应用程序包或外部 URL 中检索它,然后将其传递给PKAddPassesViewController
.
就个人而言,我会选择在网上某个地方发布 .pkpass 包,因为它允许您更改通行证而无需重新提交应用程序。
从应用程序中编译 .pkpass 是一个非常糟糕的主意。您的应用程序可能未获批准,因为要从您的应用程序内进行签名,您需要将您的 Pass Type ID 私钥嵌入您的应用程序包中。
如果您需要在通行证中包含唯一的用户信息,那么这几乎肯定需要您构建服务器或使用服务提供商,因为仍然需要构建每个通行证并签署订单。