MFi是什么?關于蘋果MFi認證MFi開發MFi外設,你所必須要知道的事情

MFiLogo

前面我寫了一篇文章《iOS App連接外設的幾種方式》,其中EAP和NCM是都需要做MFi認證。對于蘋果的MFI認證,對iOS開發的同學來說其實是一個比較陌生并且繁瑣的topic,因為網上資料確實很少,百度Google幾乎都查不到啥資料,而且MFi認證門檻比較高,流程比較復雜,周期很長。蘋果對外提供的溝通渠道也不順暢,郵件發過去杳無音信,電話從來都打不通。

本人最近兩年都在做百度CarLife這個手機車機互聯的產品,涉及到iOS app跟車機硬件的連接,所以對MFi認證略有接觸和了解,今天在不涉及公司項目技術方案和細節前提下,跟大家聊一聊我所認識的MFi認證,希望對相關的iOS開發同學有所幫助。

什么是MFi認證?

蘋果MFi認證,是蘋果公司(Apple Inc.)對其授權配件廠商生產的外置配件的一種標識使用許可,是apple公司 “Made for iOS”的英文縮寫。

市面上認證產品的顯著標識就是在包裝正面出現如下白底黑字的蘋果MFi授權logo,如本文開頭圖片所示。蘋果公司允許授權廠商在產品包裝上印上授權標簽。有句話叫無商不奸,如果消費者擔心生產商作假,未授權的硬件也偷偷貼上MFi的授權標簽,那么可以登錄蘋果的官方網站,進行查詢。如下圖


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 開發人員并不需要參與,不過我也會跟大家分享一些我所了解的信息。如果有什么不正確的地方也請相關老司機指正交流。

一、申請人提交申請資料

首先,收集公司資料信息,這些資料主要包括了認證負責人聯系信息,企業情況介紹,公司組織架構、企業網站,物料品質控制以及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跟硬件件進行通信了。這部分功能實現可以參考蘋果官方的EADemo(https://developer.apple.com/library/ios/samplecode/EADemo/Introduction/Intro.html)進行入門和學習。

產品研發完成后需要進行ATS( Accessory Test System)自測,并提供自測報告。ATS自測蘋果會提供ATS Box的測試工具和軟件,主要是針對硬件進行電氣特性相關的測試,包括各個節點的電壓電流值是否滿足蘋果要求,然后傳輸帶寬是否穩定,是否達到蘋果要求等等。

自測完成之后就可以把硬件和所配套的軟件(iOS App的ipa安裝包)送到蘋果指定的測試實驗室進行認證測試。iOS開發者在這個步驟需要關注的是如何打包ipa包。因為如果直接用開發證書打包,那么蘋果測試人員的iPhone不在你開發證書的設備列表中,是無法安裝的。如果用企業證書打包的話,可能AppStore發布證書對應的bundleid跟企業證書的bundleid不一致,所以也不可行。所以推薦的做法是,等到產品研發完成和自測之后,就帶上產品計劃中拿到的PPID,提交AppStore進行審核。等審核通過之后,就可以直接從AppStore下載對應的ipa安裝包,配合硬件一起送MFi認證測試了。

三、測試審核和批量生產

這個階段也是硬件生產商主導進行的,跟iOS app開發者關系不大。當硬件的MFi認證送審通過之后,還需要對產品的包裝也提交認證和審核。審核通過之后,就可以獲得蘋果授權進行MFi芯片的批量購買,然后根據銷售計劃進行硬件的批量生產和銷售了。

整個MFi認證的周期大概需要3個月到半年的時間,并且每次提交認證測試都需要支付一筆600美金的測試費用,所寄去測試的硬件測試樣品蘋果也是不會寄回來的。

小結

正如本文前面所述,MFi認證是有硬件生成商主導進行的針對硬件的認證,我作為iOS 開發者并沒有機會直接參與過MFi認證,所以今天主要是跟大家聊了一下我所了解到的MFi認證的相關內容,如果有什么不正確的地方歡迎各位老司機指正交流。后面有時間的時候,我計劃再寫一篇文章,介紹外設硬件如何通過MFi芯片跟iOS系統進行MFi安全認證,以及外設跟iOS App通信的一個具體流程,有興趣的同學歡迎關注我的簡書,謝謝大家的寶貴時間。

微信公眾號:云峰小羅,分享 編程.生活.段子

本人維護了一個“MFi開發交流”的微信群,里面有iOS開發 、外設驅動、MFi認證等各類相關人員,大家相關交流,互幫互助。

想進群的可以加本人微信:luoxub ,備注:MFi, 邀請進群。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,565評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,115評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,577評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,514評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,234評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,621評論 1 326
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,641評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,822評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,380評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,128評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,319評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,879評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,548評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,970評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,229評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,048評論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,285評論 2 376

推薦閱讀更多精彩內容

  • 什么是MFi認證? 蘋果MFi認證,是蘋果公司(Apple Inc.)對其授權配件廠商生產的外置配件的一種標識使用...
    段鑫閱讀 3,906評論 0 1
  • 一般iOS開發者做APP開發大部分時候都是通過Http(s)請求跟后臺服務器打交道,做一些信息展示和用戶交互...
    我是云峰小羅閱讀 2,183評論 3 5
  • 一般iOS開發者做APP開發大部分時候都是通過Http(s)請求跟后臺服務器打交道,做一些信息展示和用戶交互。很少...
    任夢RM閱讀 1,002評論 1 1
  • 過去的回憶已經死亡 我對于這死亡有大歡喜 因為我借此知道它曾存活 死去的回憶并沒有腐朽 我對于這不朽有大歡喜 因為...
    阿丶牧閱讀 287評論 0 3
  • 這是第2次加入好報寫作群,所以也是第二次寫自我介紹。 昨天剛看到二美的信息寫自我介紹時,腦子里空白無字,似乎想說的...
    心理咨詢師萍閱讀 294評論 4 6