<strike id="bdgrg"></strike>
      1. <code id="bdgrg"></code>

          首頁 > 動態 > 推廣營銷

          告別被拒,騰訊預審團隊教你如何提升iOS審核通過率

          發布時間:2017-02-22 作者:本站 瀏覽:635

          iOS審核一直是每款移動產品上架蘋果商店時面對的一座大山,每次提審都像是一次漫長而又悲壯的旅行,經常被蘋果拒之門外,無比煎熬。那么問題來了,我們有沒有什么辦法準確把握蘋果審核準則,從而提升審核的通過率呢?答案是肯定的,騰訊預審團隊從以下兩方面做了探索,經過近一年的推行和數據監控, iOS審核月通過率從過往的35%提升到85%+:

          1.分析過往提審被拒的案例,并結合《蘋果應用商店審核指南》的條款,整理成可執行的審查條目;

          2.抽離出可以自動化的方法,提升審核的效率;

          接下來我們將帶你一起走進蘋果審核,揭秘iOS審核的真相。本篇作為引子,分三個層面給大家簡單介紹iOS審核相關內容:

          一、iOS審核探秘之審核設備篇

          蘋果的產品從07年推出后,逐步推陳出新,外部市場上也已經有比較多的產品硬件版本和系統版本。如此多的系統版本,我們怎么去保證提審版本的質量,是一直困惑測試和產品團隊的點。

          往往蘋果突然發布了新的系統,我們怎么應對這些風險呢?

          【經典案例】

          14年底,由于iOS新版本8.1.1系統的發布,做了一些系統底層Bug的修復,導致了游戲產品支付不成功、webview登錄失敗。

          【關鍵舉措】

          1、與蘋果關注同樣的驗收版本:

          推測蘋果審核團隊設備驗收選型也會遵循原則:驗收最新發布的兩個系統版本,兩個硬件版本。保證游戲可以在市場占有率最高的兩個系統版本及硬件配置上可以流暢運行。

          2、關注beta版本:

          蘋果在新版本上線前會發布beta版本做少量測試,此時需要跟進beta版本,可以提前發現問題,避免突然版本發布造成措手不及。

          二、iOS審核被拒緯度剖析

          為了探究更深層次的被拒情況,我們做了細化的分析,通過往年的提審數據統計,看看都是因為哪些原因被拒吧!

          三、預審業務驗收的維度

          根據2016年的數據統計情況,并結合《蘋果應用商店審核指南》,預審組通過細分將預審工作劃為3大模塊:客戶端資源檢查、應用內容檢查和提審資源檢查:

          客戶端資源檢查

          確??蛻舳藘萈list等配置符合蘋果要求,不存在多余的Key值enable;

          應用內容檢查

          對應用的內容進行審查,確認無涉及色情、庸俗、暴力、槍支等內容;并對公告文字等篩查,無蘋果禁止的字眼等;應用內不包含cdkey兌換,好友邀請及炫耀等蘋果最新禁止的內容;

          提審資源檢查

          確保提交的游戲截圖、視頻符合蘋果要求,且截圖及視頻中沒有敏感信息;同時視頻截圖等均符合蘋果的技術要求,幀率分辨率達標。

          本文先簡介下蘋果審核的相關內容,后續會依據業務驗收的維度,給大家逐一介紹驗收的要點、曾經遇到的坑和那些讓人不淡定的被拒案例。

          我們先從客戶端檢查開始介紹

          客戶端檢查的主要目的是通過客戶端配置檢查來保證客戶端符合蘋果的開發者規范以及其他更新的要求,包括存儲系統、配置文件、網絡連接(VPN)、icon檢查、私有API檢查,提審前的審核會覆蓋這幾個部分的各個測試點。

          1、存儲系統檢查

          蘋果官方對用戶數據存儲有嚴格的規范,以往有很多被拒案例都是關于存儲的。因此,我們需要掌握蘋果官方數據存儲指引的相關內容:

          【經典案例】

          【案例1】《項目A》x.x.0版本,因App啟動后在用戶的iCloud存儲有22.17MB的數據(通常是不能超過1MB),不符合 iOS數據存儲準則被拒。

          解決辦法:因增量更新累積文件過大,經過修復后通過審核。

          【案例2】 《項目B》x.x.5版本,因沒有遵循iOS的數據存儲準則被拒,在應用的documents目錄下存儲了資源文件,蘋果不允許非用戶生成的文件放在這個目錄下,因為此目錄會被同步到iCloud。

          解決辦法:將需要存在的本地的資源文件修改到了library/cache下。

          2、配置文件(Info.plist)檢查

          Info.plist是一種結構化的文本文件,通常所說的 “屬性列表”,iOS的app都使用Info.plist文件來存儲元信息,用來實現決定bundle所顯示的icon,當前app支持打開的文檔類型,服務聲明等等。關于此部分的檢查,我們通常關注如下方面的內容:

          【經典案例】

          《項目C》x.x1版本,曾因Info.plist設置問題被拒,即應用程序不需要的文件共享功能,但在Info.plist中的UIFileSharingEnabled鍵被設置為true了。

          解決方法:Info.plist UIFileSharingEnabled鍵設置為false。

          3、網絡連接(VPN)

          大多數App的審核服務器是部署在中國,然而蘋果的iOS審核團隊卻又是在美國,他們進行審核時,使用的是美國網絡,這樣跨洲際的網絡連接,難免會出現時延大、抖動、丟包等網絡問題,為了提前驗證App后臺服務器基于此場景下的反應,預審團隊采用美國VPN方式來模擬蘋果審核團隊的訪問網絡環境(應用從美國VPN網絡中訪問后臺服務器)。

          【經典案例】

          《項目D》曾因美國IP不能登錄被拒。通過美國VPN連接,開發進行定位并修復后重新提審,并通過審核。

          4、Icon檢查

          蘋果官方對iPhone、iPad、iPod等應用程序的icon有明確的要求:要求ipa包中必須包含180x180,120x120,76x76,152x152尺寸的PNG格式的icon(詳見下表),并且不同尺寸的icon內容要一致。

          關于App icon的檢查,騰訊預審團隊采用自動化方法實現自動解壓ipa包,并逐一核實icon圖標是否存在并滿足要求,對于不滿足要求的ipa包,給出告警提示:

          【經典案例】

          《項目E》x.x.x版本預審,未提供相關icon圖片資源,如果按此版本正式提審,等待蘋果的審核結果,只會是被拒。

          5、私有API檢查

          私有API(Private API)是指放在PrivateFrameworks框架中的API,因調用私有API而在審核中遭到拒絕的現象并不少見,近日,蘋果便下架了包括《爸爸去哪兒2》、《找你妹》在內的256款APP,原因是調用私有API,很明顯,蘋果明確不允許App使用這類API。

          未公開的API(Non-publicAPI)雖然放在Frameworks框架中,但是卻沒有在蘋果的官方文檔中有使用說明、代碼介紹等。按蘋果的說法,未公開的API是還不夠成熟,可能還會變動的API,等完全成型了后會變成公開的API,但是目前不對其提供承諾,就是系統版本升級后可能會失效。對于non-public API,蘋果iOS審核指南第2.5條款,同樣明確,如APP使用時,將會被拒絕(2.5 Apps that use non-public APIs will be reject)。

          關于私有API的檢查,采用自動化工具掃描來實現,實現原理如下:

          ① 獲取未公開庫:基于iOS的SDK,dump出全庫,全庫減去私有庫和公開庫后,得到未公開庫(non-public API);

          ② 獲取頭文件方法和成員的列表:使用Otool等工具,對ipa的可執行文件進行反編譯解析,獲取頭文件中方法和成員的列表;

          ③ 與未公開庫、私有庫進行匹配:將列表中的方法和成員,分別與私有庫和未公開庫進行匹配,如未有匹配成功項,則掃描通過,如有匹配成功項,則掃描不通過(給出告警和API名稱)。

          四、總結

          1、實際上存儲系統的檢查是一套規范,遵循同系列理念,比如用戶本地存儲空間與蘋果iCloud服務器存儲的合理使用,節約空間;

          2、Info.plist文件檢查實際上是xml文件的鍵值檢查,并且值檢查關系是并列的。通過存儲文件、plist用例的檢查,基本避免了因該類原因被拒的情況;

          3、私有API檢查則通過自動化工具掃描來實現。

          推薦新聞

          ??
          日韩R级AV无码中文|视频三级黄片欧美|亚洲色图欧美色图偷拍偷窥|女裸视频网站免费久久

          <strike id="bdgrg"></strike>
            1. <code id="bdgrg"></code>