適配IPv6三:項目實戰

蘋果公司規定6.1號之后,所有上線的應用需要支持IPv6,于是公司就讓我來適配以前的一個老項目,這個項目最新版本是一年之前的,具體官方文檔可查看《適配IPv6:官方文檔(一)》建議兩篇文章一起看效果好點。

這里主要從以下幾個方面來寫

一、分析項目中那些東西需要適配

1.網絡請求

由于項目比較老,項目中使用的是ASIHttprequest,雖然ASI現在沒有人維護了,但還是能在項目中使用,和AFNetWorking 相比,它是基于CFNetwork,可以直接適配IPv6,新項目建議直接使用AFN比較好,AFN2.0以上也是支持IPv6的。

2.網絡監測這個庫 reachability

reachability在蘋果官方可以看到最新的版本已經是5.0了,完全支持IPv6,項目中的還是2.2版本,需要進行適配處理。(IPv6測試的時候發現需要適配)

由于項目中用到了一個第三方庫,這個庫主要是用來查詢股票的,并且是在他們基礎庫的基礎上為我們公司單獨定制的,最不好處理的是reachability這個類被封裝進去了。而提供這個庫的公司的代碼也是在不斷更新的。(后來和他們技術聊知道一個月8個小版本)

當時想的思路是直接替換reachability這個類為最新版本,然后重新打包文件。想想總是簡單的,這樣主要出現了兩個問題,一是reachability從2.2到5更新之后,方法什么的有變動,庫里面引用的地方要重新調用整個include文件(600個頭文件)。二是他們的老版本找不到了,只有最新的版本,需要在他們最新版本基礎上重新加入以前定制的文件。我也是第一次見include 頭文件除了.h還有很多.m文件,也許真是為了方便吧,讓人很難理解。

其實一個很簡單的問題,解決起來一個坑接一個坑,主要是最新sdk和項目中sdk相差太大,又是定制的。花費時間比較多,用了兩天時間。

3.第三方SDK

項目中使用的第三方有,極光,友盟和Share,極光和友盟直接去官網下載,重新集成即可。

Share在集成的時候由于版本分為2.x和3.x,項目中使用的是2.x,3.x最新是支持IPv6,如果剛開始直接換成3.x,項目中很多代碼都要改。 后來分析的一下,分享主要集成了微信和新浪,我直接更換他們最新的.a文件是否可以?后來資訊了share技術,告知這樣做是可以的,完美。其他項目中第三方也一樣。

4.IP地址

為了適配IPv6,項目中要把IP地址換成域名處理

二、搭建并測試IPv6

這里小小偷懶了下,直接復制的圖,親測可行

使用你的MAC建立本地的IPv6 Wi-Fi 網絡

確認你的MAC連接到了互聯網,并且不是通過Wi-Fi.(插入網線即可),注意不要是有代理才能上網的,在公司需要設置代理才可以上網,整了一天沒整好,回家使用網絡直接搭建成功。

從Dock中運行系統首選項

按住Option按鍵并且同時點擊共享 ,不要松開Option按鍵

打開設置 共享選項

從共享服務中選擇互聯網分享選項

配置互聯網共享

釋放Option按鍵

選中 創建NAT64網絡復選框

打開本地的IPv6 NAT64 網絡

選擇一個提供互聯網鏈接的網絡接口, 例如雷電網卡

選擇一個網絡接口共享

選擇Wi-Fi 復選框.

打開通過 Wi-Fi共享

點擊 Wi-Fi 選項, 配置網絡名稱與密碼等信息

訪問WI-FI設置選項

設置本地WI-FI

選擇互聯網共享復選框,開啟你的本地網絡

開啟互聯網共享

當提示確認開始分享的時候,點擊開始

開始分享

一旦共享處于活動狀態,你應該看到一個綠色的狀態指示燈,Internet共享標簽:開。在無線網絡菜單中,您還將看到一個小的,淡淡的箭頭朝上,表明互聯網共享已啟用。你現在有一個IPv6NAT64網絡,并可以從其他設備,以測試你的應用程序連接到它。

互聯網共享標識

手機連上之后,DNS就是IPv6網絡了,運行app測試即可。


手機連接

參考文章地址:

ASI是否支持:http://stackoverflow.com/questions/37063252/does-asihttprequest-support-ipv6-only

Reachability官方:https://developer.apple.com/library/ios/samplecode/Reachability/Listings/LICENSE_txt.html#//apple_ref/doc/uid/DTS40007324-LICENSE_txt-DontLinkElementID_3

DNS64和NAT64

http://www.ipv6bbs.cn/thread-170-1-1.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容