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

Objective c 在运行时创建证书和传递类型ID,objective-c,ios,certificate,passbook,Objective C,Ios,Certificate,Passbook,根据准则23.3,我的存折相关应用程序最近被拒绝: 23.3:通行证必须由以自己的名称、商标或品牌分发通行证的实体签字,否则应用程序将被拒绝,存折凭证可能被吊销 我有几个问题,和苹果公司的人通了电话。他们告诉我,为了解决我的问题,我可以在申请表中创建一个注册表格。然后,可以使用此注册表单根据用户的凭据为用户创建证书和传递类型ID。然而,我一直在梳理文档,没有发现任何允许人们在没有付费开发人员成员资格的情况下创建通行证类型ID或证书的内容。这是否正确,我的用户是否需要付费开发人员成员身份才能创建自

根据准则23.3,我的存折相关应用程序最近被拒绝:

23.3:通行证必须由以自己的名称、商标或品牌分发通行证的实体签字,否则应用程序将被拒绝,存折凭证可能被吊销

我有几个问题,和苹果公司的人通了电话。他们告诉我,为了解决我的问题,我可以在申请表中创建一个注册表格。然后,可以使用此注册表单根据用户的凭据为用户创建证书和传递类型ID。然而,我一直在梳理文档,没有发现任何允许人们在没有付费开发人员成员资格的情况下创建通行证类型ID或证书的内容。这是否正确,我的用户是否需要付费开发人员成员身份才能创建自己的通行证类型ID?

如果没有,甚至可以在运行时创建PassType ID吗?例如,使用注册表单中的信息,我可能会向PassKit/某种类型的Passbook服务器发出API请求,以创建通行证类型ID:

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

是否有类似的情况,或者苹果技术人员是否在谈论其他事情?

我不确定技术人员在谈论什么,但23.3指的是一台服务器(可能是您的)在将pkpass文件发送到设备之前使用pass进行签名过程

有关详细信息,请参阅《存折编程指南》的“”部分

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

听起来很疯狂-是的!要完全满足这一准则,唯一的办法就是缴纳苹果税并注册成为开发者。在苹果开发者论坛上,有几个长长的帖子在谈论这个问题的原因和含义。虽然它不受欢迎,但我们大多数人都承认这有很好的理由,从长远来看,它将保护平台的完整性(同时在短期内让苹果的律师们感到高兴)

主要原因是,在大多数司法管辖区;优惠券、车票、旅行证件和其他典型的存折内容对发行人具有约束力。在法律上,如果未履行,通行证发行人对消费者负责。为了保护自己,苹果需要确保在任何情况下,他们都不能被视为任何存折通行证的发行人

苹果开发者计划注册验证任何被接受的个人或公司的身份。它还迫使开发者签署开发者协议的条款,该协议有一个完整的附件,专门说明你可以和不能用存折和你的PassID证书做什么。这为苹果公司提供了足够的法律保护,防止任何与任何存折通行证相关的未履行商品或服务的索赔

虽然有很多人反对,并呼吁采取更快、更少以美国为中心的流程(你不会相信为美国以外的一家小型实体获得邓斯号码有多困难),但我预计这种情况不会很快改变

至于自动资源调配。我自己和其他主要存折平台的创建者在iOS6发布之前就一直呼吁这样做。我有一个8月7日的公开雷达,要求一个简单的API来颁发和撤销通行证类型的ID证书。我很好奇你的苹果技术人员指的是什么,因为据我所知,没有这样的服务

// rant
令人沮丧的是,有许多已批准的应用程序允许完全定制,但在应用程序开发人员的证书下颁发通行证

苹果似乎也对某些服务睁一只眼闭一只眼,这些服务通过自己的证书颁发通行证,证书上印有主要品牌的标志和商标(然后又厚颜无耻地要求这些品牌“申领通行证”)

就连Passtools(现在的城市飞艇)也声称提供了“Passtools提供的唯一苹果开发者证书”,这在技术上违反了苹果开发者协议

所以底线是,在这种情况下,你可能只是运气不好

// end rant

你到底想干什么?如果你的用户需要创建他们自己的通行证类型ID,那么是的,他们唯一能做到的就是通过iOS开发者程序。谢谢你的回答。是否在developer.apple.com之外(例如在服务器上或中)创建
PassTypeIdentifiers
?我看过苹果公司提供的Passpook SignPass项目,但这似乎对我的案例没有多大帮助。不幸的是没有。目前唯一的方法是通过资源调配门户。