提升iOS審核通過率之“IPv6兼容測試”

作者:jingle 騰訊系統(tǒng)測試工程師

商業(yè)轉(zhuǎn)載請聯(lián)系騰訊WeTest授權(quán)进陡,非商業(yè)轉(zhuǎn)載請注明出處伐割。

原文鏈接:http://wetest.qq.com/lab/view/285.html


一、背景

在WWDC2015大會上蘋果宣布iOS9將支持純IPv6的網(wǎng)絡服務戴而。2016年6月1號,所有提交到AppStore上的應用都必須支持IPv6,否則將通不過審核写穴。為了確保我們的app正常提交到蘋果進行審核,不耽誤項目進度雌贱,我們必須在提交到AppStore前對待提交app做IPv6兼容測試啊送。


二偿短、為什么要使用IPv6

從IPv4到IPv6,IP地址的數(shù)量從2的32次方擴展到2的128次方馋没,這個是IPv6碾壓IPv4的地方昔逗,足夠地球上的每粒沙子分配一個或者多個IP地址。當然篷朵,除了IPv4本身的原因(地址枯竭)外纤子,下面提到的幾點,也說明了IPv6比IPv4更加高效款票,例如:


避免了網(wǎng)絡地址轉(zhuǎn)換(NAT)的需要

通過使用簡化的頭提供了更快的路由通過網(wǎng)絡

防止網(wǎng)絡碎片

避免廣播鄰居地址解析

但最根本的原因莫過于蘋果審核的壓力控硼,不得不將app適配IPv6。


三艾少、測試應該關注的點

1. 保證項目代碼中使用的是更高層次的網(wǎng)絡API卡乾,避免使用socket API

在蘋果官網(wǎng)上,有這么一張圖缚够,說明了哪些框架支持IPv6幔妨,哪些不支持, 如下圖所示:


圖中藍色部分默認支持IPv6谍椅,如果項目代碼中使用的是WebKit或者AFNetWorking這些網(wǎng)絡框架误堡,那么需要改動的代碼不會很多。

2. 走讀代碼中是否使用了IP地址

比如雏吭,檢查代碼中是否包含了類似于192.168.0.1的地址锁施,如果有,需要換為其對應的域名地址杖们。

3. 檢查代碼是否包含只適用于IPv4的API

確保項目代碼中沒有以下API:

inet_addr()

inet_aton()

inet_lnaof()

inet_makeaddr()

inet_netof()

inet_network()

inet_ntoa()

inet_ntoa_r()

bindresvport()

getipv4sourcefilter()

setipv4sourcefilter()

如果有了這些代碼也不要怕悉抵,只需要將對應的API換為IPv6所支持的API即可,下表是IPv4和IPv6的對應關系表:



4. 本地搭建IPv6環(huán)境摘完,回歸app中所有網(wǎng)絡請求的模塊

我們現(xiàn)在連的網(wǎng)絡姥饰,無論是wifi還是移動、聯(lián)通孝治、電信的各種不同類型的網(wǎng)絡列粪,都是IPv4的,也就是實際生活中和我們打交道的全是IPv4環(huán)境谈飒。但我們需要測試IPv6在iOS APP中的兼容性岂座,是必然不能在現(xiàn)有的網(wǎng)絡環(huán)境下測試的,需要測試人員自己構(gòu)建測試環(huán)境步绸。

值得欣慰的是掺逼,蘋果公司在MAC OS X 10.11以后的系統(tǒng)中就埋下了開啟IPv6環(huán)境的彩蛋吃媒。我們所要做的就是參照官方文檔瓤介,在本地搭建這樣的測試環(huán)境吕喘。即用MAC機建立一個熱點,然后用iPhone連接該熱點刑桑,回歸待測模塊氯质。簡單的示意圖如下所示:


a)需要準備的設備:

系統(tǒng)是OS X 10.11以后版本的MAC機(該MAC機要使用非WIFI方式上網(wǎng),且支持雙網(wǎng)卡)一臺祠斧,iPhone手機一臺闻察。這個地方有些土豪同學可能會有疑問,我的Mac本本只有無線網(wǎng)卡琢锋,沒有有線網(wǎng)孔啊辕漂,這時你就需要一個蘋果Thunderbolt千兆以太網(wǎng)轉(zhuǎn)換器,如下圖所示:

b)開啟NAT64網(wǎng)絡

打開“系統(tǒng)偏好設置”吴超,按住option鍵的同時點擊“共享”钉嘹,如下圖所示:

之后,在共享頁就能看到“創(chuàng)建NAT64網(wǎng)絡”的可選框了鲸阻,如下圖所示:

到此跋涣,我們的NAT64網(wǎng)絡就創(chuàng)建完成了,剩下的就是創(chuàng)建熱點了鸟悴。

c)在MAC機上創(chuàng)建WiFi熱點

MAC上創(chuàng)建WiFi熱點陈辱,很簡單,這里就不再詳細說明了细诸,看下面這張圖也能知道怎么創(chuàng)建的:

這里想說明一點沛贪,也是比較關鍵的一點:點擊上圖中的“啟動”button后,有些網(wǎng)絡會出現(xiàn)如下圖所示的共享失敗情況:

出現(xiàn)這種情況震贵,說明你當前使用的網(wǎng)絡受到了802.1x協(xié)議的限制鹏浅,無法共享。只能通過去802.1x保護或者換其他可以共享的網(wǎng)絡進行共享屏歹。

如果是在公司網(wǎng)絡隐砸,可以尋求IT進行網(wǎng)絡切換,或者找開發(fā)他們搭建好的網(wǎng)絡環(huán)境進行測試(ps:如果開發(fā)沒有IPv6網(wǎng)絡環(huán)境蝙眶,且發(fā)版時間又比較緊張的情況下季希,可以和老大申請回家辦公,或者隨便一個咖啡館)幽纷。

如果熱點搭建成功式塌,是可以在mac機右上角的網(wǎng)絡狀態(tài)處看到如下圖所示的圖標:

d)iPhone手機連接創(chuàng)建好的熱點,連接成功后友浸,可以查下iPhone手機的IP地址峰尝。

我這里看到的是169.254..的IP地址,這類地址屬于保留地址收恢,具體什么是保留地址武学,請自行百度祭往。

e)回歸待測app,確保所有的網(wǎng)絡請求在本地搭建好的IPv6網(wǎng)絡環(huán)境下正常的火窒,這里說的“正撑鸩梗”就是指和在IPv4網(wǎng)絡環(huán)境下的表現(xiàn)一致。

經(jīng)測試熏矿,在IPv6網(wǎng)絡環(huán)境下已骇,QQ可以正常使用,微信網(wǎng)絡連接失斊北唷(微信最新的SDK已支持IPv6)褪储。

最后,如果感興趣的話慧域,可以用抓包工具看一下乱豆,IPv6的地址長什么樣子,之前都是在課本中見到過吊趾,這次測試也算是頭一次真正看到IPv6的地址啦宛裕,如下圖所示:

四、項目實戰(zhàn)

這里以地圖SDK為例论泛,簡單說明具體的測試步驟揩尸。地圖SDK,是地圖軟件開發(fā)工程師為特定的軟件包屁奏、軟件框架岩榆、硬件平臺、操作系統(tǒng)等建立應用軟件時的開發(fā)工具的集合坟瓢,它包括接口API勇边、示例代碼、支持性的技術(shù)注解或者其他的支持文檔折联,有了這些粒褒,第三方開發(fā)者可以很方便的使用這些API開發(fā)自己所需的功能,這里附上騰訊地圖開放平臺地址:http://lbs.qq.com/ios_v1/index.html诚镰。

目前和騰訊地圖SDK合作的小伙伴有京東奕坟、58同城、攜程清笨、嘀嘀等月杉。

1. 首先需要分析該SDK使用到了哪些庫

地圖SDK中使用的framework如下圖:

針對地圖SDK中使用到的這些庫,逐一確認是否支持IPv6抠艾,比如WebKit.framework框架苛萎,蘋果官方文檔就明確說明了支持IPv6。

2. 檢查SDK源碼中是否使用到了IP地址

這塊主要是走查所有有網(wǎng)絡請求的模塊,是否將IP地址替換為了域名腌歉,這塊一般是在代碼某個配置文件中進行定義的蛙酪。比如,下圖所示的server地址:

3. 檢查代碼中是否包含只支持IPv4的API

由于SDK使用的是WebKit.framework究履,不存在底層的socket API,這塊沒有風險脸狸。

4. 本地搭建測試環(huán)境最仑,回歸SDK網(wǎng)絡相關模塊

這里,需要保證在IPv6環(huán)境下的功能與在IPv4環(huán)境下表現(xiàn)一致的炊甲,就可以說明測試通過泥彤。

5. 抓包確認

最后,可以通過抓包看看是否真的走的是所搭建的IPv6的測試環(huán)境卿啡,當然也可以親眼目睹下IPv6的IP地址長什么樣兒吟吝。


【騰訊WeTest iOS預審工具】

為了提高IEG蘋果審核通過率,騰訊專門成立了蘋果審核測試團隊颈娜,打造出iOS預審工具這款產(chǎn)品剑逃。經(jīng)過1年半的內(nèi)部運營,騰訊內(nèi)部應用的iOS審核通過率從平均35%提升到90%+官辽。

現(xiàn)將騰訊內(nèi)部產(chǎn)品的過審經(jīng)驗蛹磺,以線上工具的形式共享給各位。在WeTest騰訊質(zhì)量開放平臺上可以在線使用同仆。

點擊鏈接:http://wetest.qq.com/product/ios即可立即體驗萤捆!

iOS預審工具分四步進行預審服務

【一鍵掃描】只需提供ipa包、審核圖片俗批、審核視頻俗或、應用描述,即可在4小時內(nèi)拿到一份完整的檢測報告岁忘,定位問題的同時提供解決方案辛慰,助您成功通過審核。

【案例分享】集結(jié)iOS審核失敗常見原因干像,豐富案例為您提供參考依據(jù)昆雀。

【專家服務】騰訊專家團隊為您分析各種疑難雜癥,提出最優(yōu)解決方案蝠筑。

【ASO優(yōu)化】專業(yè)優(yōu)化AppStore內(nèi)關鍵字搜索結(jié)果狞膘,讓產(chǎn)品離用戶更近一步。希望App/手游在預審驗收保證下什乙,都可以快快樂樂過審挽封,開開心心賺錢。

關注“騰訊WeTest”公眾號臣镣,獲取更多干貨

開啟贊賞

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末辅愿,一起剝皮案震驚了整個濱河市智亮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌点待,老刑警劉巖阔蛉,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異癞埠,居然都是意外死亡状原,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門苗踪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來颠区,“玉大人,你說我怎么就攤上這事通铲”侠常” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵颅夺,是天一觀的道長朋截。 經(jīng)常有香客問我,道長吧黄,這世上最難降的妖魔是什么质和? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮稚字,結(jié)果婚禮上饲宿,老公的妹妹穿的比我還像新娘。我一直安慰自己胆描,他們只是感情好瘫想,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著昌讲,像睡著了一般国夜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上短绸,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天车吹,我揣著相機與錄音,去河邊找鬼醋闭。 笑死窄驹,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的证逻。 我是一名探鬼主播乐埠,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了丈咐?” 一聲冷哼從身側(cè)響起瑞眼,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎棵逊,沒想到半個月后伤疙,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡辆影,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年徒像,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片秸歧。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡厨姚,死狀恐怖衅澈,靈堂內(nèi)的尸體忽然破棺而出键菱,到底是詐尸還是另有隱情,我是刑警寧澤今布,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布经备,位于F島的核電站,受9級特大地震影響部默,放射性物質(zhì)發(fā)生泄漏侵蒙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一傅蹂、第九天 我趴在偏房一處隱蔽的房頂上張望纷闺。 院中可真熱鬧,春花似錦份蝴、人聲如沸犁功。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽浸卦。三九已至,卻和暖如春案糙,著一層夾襖步出監(jiān)牢的瞬間限嫌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工时捌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留怒医,地道東北人。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓奢讨,卻偏偏與公主長得像裆熙,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 研究IPv6 socket編程原因: Supporting IPv6 in iOS 9 WWDC2015蘋果宣布在...
    li大鵬閱讀 7,326評論 7 15
  • 原文連接 為了加深印象與理解入录,自己copy了一份蛤奥,順便按照自己的理解稍作修改。參考資料 自從5月初Apple明文規(guī)...
    不會游泳De魚閱讀 4,620評論 2 12
  • 隨著時間的推移僚稿,人生在職場一般有三個階段凡桥,需要三個不同的著力點。以下的時間范圍僅是參考蚀同,因為有些人可以在很短時間缅刽、...
    丘一森閱讀 1,402評論 0 0
  • 每一次的慢走長談,都是我們心靈深處最柔軟的地方蠢络,是的衰猛,這時候才最顯示語言如此蒼白,所有的安慰如此無力刹孔,但我們都知道...
    演繹主角閱讀 300評論 0 0
  • 圓和方看著簡單啡省,畫起來不容易。尤其是畫正方體髓霞,注意透視關系的時候卦睹,最遠處的那個點老是找不準》娇猓看著哪里不對结序,就是不知...
    圍裙媽閱讀 301評論 2 3