MFi认证
为什么要做MFi认证?
从苹果角度来看,为了更好的巩固苹果的生态圈,只有集成了有MFi芯片,才能跟iPhone、iPod,iPad进行连接通信。
而只有经过了MFi认证的企业才能批量购买MFi芯片,并且都MFi芯片的供销链条都有很严格的监督管理,所以这样苹
果可以严格控制只有那些满足苹果规范和要求的外设才能加入到苹果生态圈。
从生产厂商来看,经过苹果官方授权,配件产品能完美兼容苹果智能设备;提交MFi认证过程中,硬件设备需要经过苹果
要求的ATS自测以及苹果的严格测试,产品质量更有保证;消费者也更加信任经过了MFi认证授权的配件;最后成功获得
MFI授权这也成为技术与质量实力的一种标志,因为MFi认证通过率仅2%,其中大部分企业因为申请资格不符合直接被拒
绝。
从iOS开发人员来看,MFi认证是由硬件生产商主导进行申请的,是苹果对外设配件的一种认证和授权。但是很多外设跟苹果进行连接,并不只是跟iOS设备硬件或者iOS系统配合就可以完成对应的功能(比如充电、CarPlay、播放ipod音乐(A2DP)、接听蓝牙电话(HPF)或者提供GPS输入源等)。很多时候为了实现特定的需求,需要由iOS App的配合,由iOS App跟对应外设进行连接和通信,传输相关的控制命令对外设进行控制,或者传输相关的外设数据进行展示。iOS App跟外设的连接方式有网络、EAP和BLE (请参考我之前写过的《iOS App连接外设的几种方式》),其中EAP 是苹果官方推荐的跟外设连接的方式。只有经过MFi认证的外设才能使用EAP跟app进行通信。
如何做MFi认证?
MFi认证的流程比较复杂,可以归纳总结为三个部分,如下图所示,
MFi认证流程
其中黄色背景标注的部分是可能跟iOS App开发者相关的,我会重点介绍。其他部分则都是由硬件生产商主导进行的,
我作为iOS 开发人员并不需要参与,不过我也会跟大家分享一些我所了解的信息。如果有什么不正确的地方也请相关老
司机指正交流。
02如何审请
一、申请人提交申请资料
首先,收集公司资料信息,这些资料主要包括了认证负责人联系信息,企业情况介绍,公司组织架构、企业网站,物料
品质控制以及ISO体系证书等资料。然后是在苹果MFi(mfi.apple.com)上进行注册,并提交第一步收集到的公司
资料,进行账号申请。
接下来苹果会进行MFi体系审核。这个是非常关键的一个步骤。 主要考察公司对MFi芯片的管理体系,看公司是否有规范
的流程和系统来管理MFi芯片,能有效防止转售芯片或者挪用芯片(把芯片用到未通过MFi认知的项目上),苹果会安排
专人或者代理公司来抽查。
如果MFi体系审核过了,苹果还会对公司其他情况进行考察,来评估该公司是否满足MFi会员的资格。审核的标准主要看公
司相关资质,是否有较大的生产规模;是否拥有自主品牌;品牌在业内是否有较高的地位(主要表现为各类荣誉);是否曾
为其他国际知名企业供货;研发人员是否达到苹果要求的人数等,申请者一定保证申报资料的真实性,苹果公司都会一一核实。
如果这些条件都满足,恭喜你公司成为了MFi会员,能够有资格购买样品芯片,并且拿到苹果提供的MFi官方开发文档,该文档的每一页都是带有申请人姓名水印的,禁止对外公开,如果被发现,有可能会被取消MFi会员资格。据说大部分的企业都会被卡在会员资格审核这一步。
二、提交产品计划,研发和自测
如果你的公司是属于那幸运的那一小部分(据说是5%,本人道听途说的,没有官方数据支撑)通过了MFi会员资格审核,拿到了苹果的MFi研发官方文档,也购买了MFi样品芯片,那么就可以提交产品计划,进行产品研发和自测了。
提交产品计划是非常关键的一步,需要根据要研发的公司产品的形态、所用技术方案和需要支持的iOS设备、iOS的相关信息都进行详细的描述,其中比较重要信息有。
(1)附件概览(Accessory Overview)
附件概览
技术方案(Technology)如果你是做支持CapPlay的车机,那么就选择CarPlay,否则都应该选择iAP;如果你的硬件需要跟iPhone连接,并且处理相关业务,而不仅仅是充电线或者数据线,那么在Components里应该选择Authentication coprocessor.(2)固件和硬件(Firmware & Hardware)
固件和硬件信息
现在所有的MFi认证的硬件都需要支持iAP2协议,所以必须要选iAP2或者同时支持iAP2和iAP1.然后外设硬件跟苹果设备是如何通信的,是使用USB的Host模式,还USB的Devices模式,还是串口或者蓝牙,这个需要根据产品的需求、特性进行选择。
(3)选择硬件所支持的iAP2的特性
iAP2特性
(4)选择所支持的苹果设备型号。
根据产品的设计选择所需要支持的苹果设备型号,包括iPad,iPhone和iPod的各种型号。
(5)App相关的信息
App相关信息
这部分也是iOS开发者需要重点关注的部分,包括App的版本号,BundleID和协议字符串以及iOS App的主要功能特性描述,这部分信息需要跟最后送MFi审核时附带的App测试包的信息保持一致。提交了产品计划之后,就可以拿到PPID
(Product Plan ID).这个PPID也是跟iOS App开发者需要关注的。当App开发完成,提交AppStore上线时,需要在版本审核备注信息里带上这个PPID,否则审核是过不了的.
接下来就可以进行产品研发了。主要是硬件生成商需要根据苹果提供的开发文档进行硬件和驱动认证程序的开发。而iOS App开发者则主要是需要成 iOS系统提供的一个系统框架ExternalAccessory.framework,并且在info.plist中配置好协议字符串(Supported external accessory protocols)。当iOS 设备通过USB线或者蓝牙连接到对应硬件时,iOS系统会把符合MFI认证要求的外设抽象成了一个流对象,App通过指定的协议字符串来创建一个EASession类的实例来访问到该流对象,就能通过NSInputStream和NSOutputStream跟硬件件进行通信了。
产品研发完成后需要进行ATS( Accessory Test System)自测,并提供自测报告。ATS自测苹果会提供ATS Box的测试工具和软件,主要是针对硬件进行电气特性相关的测试,包括各个节点的电压电流值是否满足苹果要求,然后传输带宽是否稳定,是否达到苹果要求等等。