在运行时创建证书和传递类型ID

时间:2013-01-07 18:30:08

标签: objective-c ios certificate passbook

我的Passbook相关应用程序最近被拒绝,基于指南23.3:

  

23.3:通行证必须由将以自己的名称,商标或品牌分发通行证的实体签署,否则应用程序将被拒绝,并且可能会撤销Passbook凭证

我有几个问题,并在Apple与某人通电话。他们告诉我,为了解决我的问题,我可以在我的应用程序中创建一个注册表单。然后,可以使用此注册表单为用户创建证书并根据其凭据传递类型ID。但是,我一直在梳理文档,而且我没有找到任何允许人们在没有付费开发者会员资格的情况下创建通行证类型ID或证书的内容。这是正确的,我的用户是否需要付费开发者会员才能创建自己的通行证类型ID?

如果他们不这样做,甚至可以在运行时创建PassType ID吗?例如,使用注册表单中的信息,我可能会使用PassKit /某种Passbook服务器发出API请求来创建Pass Type ID:

PassID *ID = [PassKit createIDWithName:@"USER_INFO"];

有没有类似的东西,还是Apple技术人员正在谈论其他事情?

2 个答案:

答案 0 :(得分:3)

  

我的用户是否需要付费开发者会员才能创建自己的会员资格   传递类型ID

听起来很疯狂 - 是的!完全满足此指南的唯一方法是支付Apple Tax并注册为开发人员。 Apple开发者论坛中有几个长线程,讨论了这个问题的原因和含义。虽然它不受欢迎,但我们大多数人都承认这有很好的理由,从长远来看,这将保护平台的完整性(以及让苹果律师在短期内保持高兴)。

主要推理是因为在大多数司法管辖区;优惠券,门票,旅行证件和其他典型的Passbook内容对发行人构成约束性义务。从法律上讲,如果不履行,通行证发行人应对消费者负责。为了保护自己,Apple需要确保在任何情况下都不能被视为任何Passbook通行证的发行者。

Apple Developer计划注册会验证所接受的任何个人或公司的身份。它还迫使开发人员签署开发者协议的条款,该协议的完整附件专用于您使用Passbook和PassID证书可以做什么和不做什么。这为Apple提供了足够的法律保护,以防止任何与任何Passbook通行证相关的未履行货物或服务的索赔。

虽然有很多阻力并要求更快,更少以美国为中心的流程(你不会相信为美国以外的小型实体获取DUNS号码是多么困难),我不指望这很快就会改变。

至于自动配置。自从iOS6推出之前,我自己和其他主要Passbook平台的创建者一直在呼吁这一点。我有一个8月7日的开放式雷达,要求一个简单的API来发布和撤销Pass Type ID证书。我很关注你的Apple技术员所指的是什么,因为据我所知,没有这样的服务。

// rant

令人沮丧的是, 许多已批准的应用程序允许完全通过自定义,但在App开发人员的证书下发出通行证。

苹果似乎也对某些服务视而不见,这些服务根据自己的证书颁发通行证,这些服务带有主要品牌的标识和商标(然后大胆地呼吁这些品牌“要求他们的通行证”)。 / p>

即使是Passtools(现为Urban Airship)也声称提供“PassTools独特的Apple开发者证书”,这在技术上违反了Apple开发者协议。

所以最重要的是,在这种情况下,你可能只是不走运。

// end rant

答案 1 :(得分:2)

我不确定技术人员在说什么,但23.3指的是在将pkpass文件发送到设备之前通过签名过程的服务器(可能是你的)。

有关高级别信息,请查看存折编程指南的“signing and compressing the pass”部分。

相关问题