iOS之IPV6環(huán)境搭建測試

一、關(guān)于IPV6審核問題

最近上架爆出很多IPV6的問題,也不知道蘋果怎么了。具體出現(xiàn)這個問題的原因眾說紛紜,但是因?yàn)樘O果不具體給出原因所以無法確定。
具體原因主要有以下幾種:

  • 移動端iPhone端未支持IPV6
  • 服務(wù)器端未支持IPV6或者服務(wù)器所在的DNS服務(wù)器未支持IPV6地址的查詢響應(yīng)
  • 移動端iPhone端支持IPV6測試沒問題,但是蘋果測試的時候都是用PAD來測試的,所以我們也需要用PAD來測試下看是否也OK

解決辦法有以下幾種:

  • 確定iPhone端和iPad端都支持IPV6,然后服務(wù)器支持IPV6或者服務(wù)器所在的DNS服務(wù)器支持IPV6地址的查詢響應(yīng),那么可以錄制視頻申訴
  • 購買海外或者香港服務(wù)器,審核的時候用海外或者香港服務(wù)器,過審核之后再切回國內(nèi)服務(wù)器
二、搭建iOS端IPV6測試環(huán)境

具體的我們iOS端支不支持IPV6我們需要通過搭建測試環(huán)境來看,具體搭建步驟如下。
1、IPV6簡介

  • 與IPV6一起相對的是IPV4,這是IP地址的兩種表示方式.
  • IPV4是32位,采用點(diǎn)分十進(jìn)制,分四段,每段8位,每一段將8位二進(jìn)制化成十進(jìn)制就有了點(diǎn)分十進(jìn)制,示例如右:192.168.1.101。但是早在20年前就基本上快不夠分了,具體的有ABCDE等幾類地址,這個可以百度詳查。32位可供用的地址的確不能滿足日益龐大的網(wǎng)絡(luò)用戶去分,為了延緩這個問題,出了NAT(網(wǎng)絡(luò)地址轉(zhuǎn)換)技術(shù),這個技術(shù)的核心思想是將地址分為公網(wǎng)地址和私網(wǎng)地址,然后私網(wǎng)地址在網(wǎng)絡(luò)出口的時候轉(zhuǎn)換成公網(wǎng)地址去訪問公網(wǎng)資源。但是這畢竟只是延緩,不能解決根本問題。
  • IPV6地址,這個是128位的,采用:分割的方式,分8段,每一段16位,將每一段的16位二進(jìn)制化成4位16進(jìn)制,示例如右:2001:0000: 1F1F :0000:0000:0100: 11A0:ADDF。

2、搭建測試環(huán)境

Snip20170517_185.png
Snip20170517_186.png

這個蘋果官網(wǎng)價格很貴,可以到天貓?zhí)詫氋I一個幾十塊錢

  • 將MAC電腦連接網(wǎng)絡(luò)轉(zhuǎn)換口,一端接MAC電腦,一端接以太網(wǎng)口(RJ45口,具體百度),請確保這個以太網(wǎng)口另外一端是能連接外網(wǎng)的.然后確定MAC能通過這個以太網(wǎng)口去上網(wǎng),而不是通過WiFi上網(wǎng)
  • 確保MAC通過有線上網(wǎng)后,我們就要開始搭建測試環(huán)境了,打開系統(tǒng)偏好設(shè)置,左上角蘋果圖標(biāo)->系統(tǒng)偏好設(shè)置,如下:
Snip20170517_187.png
  • 找到共享,然后在系統(tǒng)偏好這個界面按住Option鍵+單擊以上圖示中的共享,出現(xiàn)如下畫面:
Snip20170517_188.png
  • 勾選創(chuàng)建NAT64網(wǎng)絡(luò):
Snip20170517_189.png
  • 勾選共享來源:
Snip20170517_199.png
  • 如果是USB轉(zhuǎn)RJ45的,那么選擇類似以下的接口來共享


    Snip20170517_200.png

  • 如果是Thunderbolt轉(zhuǎn)RJ45的,那么選以下類似的接口來共享:
Snip20170517_201.png
  • 再勾選下圖中的Wi-Fi:
Snip20170517_190.png
  • 點(diǎn)擊下圖中的創(chuàng)建NAT64網(wǎng)絡(luò)右邊的”Wi-Fi選項(xiàng)...“:
Snip20170517_195.png
  • 設(shè)置好Wi-Fi后,單擊如下選項(xiàng):
Snip20170517_192.png
  • 勾選互聯(lián)網(wǎng)共享后,就會出現(xiàn)如下對話框:
Snip20170517_194.png
  • 點(diǎn)擊啟動后過十幾秒就會發(fā)射一個kodiewifi出來,如果出現(xiàn)以下的情況證明網(wǎng)絡(luò)已經(jīng)建好:


    Snip20170517_203.png
Snip20170517_205.png
  • 然后我們用測試設(shè)備連接這個WiFi來測試,此處選用iPhone來測試,連接WiFi后像如下情況就正常了:
Snip20170517_197.png

對比下普通的WiFi,明顯能看到點(diǎn)分十進(jìn)制和冒號的區(qū)別:

Snip20170517_207.png
  • 然后打開瀏覽器先測試下網(wǎng)絡(luò)是否正常,如果正常,然后再行測試下你的工程項(xiàng)目是否能夠正常運(yùn)行,如果能夠正常運(yùn)行說明IPV6沒有問題,然后最好將你的項(xiàng)目運(yùn)行在iPad上再次測試一下。

備注

  • 在使用 IPv6 的熱點(diǎn)時候,保證手機(jī)只在 Wi-Fi 下上網(wǎng),以免手機(jī)在連接不到網(wǎng)絡(luò)時候,會默認(rèn)跳轉(zhuǎn)到使用蜂窩移動網(wǎng)絡(luò)(即2G、3G、4G流量)上網(wǎng),而且蘋果手機(jī)如果這個WiFi上不了網(wǎng)很容易自動切換到之前的WiFi去上,所以這個一定要注意哦~~~
  • 注意如果說你連上IPV6熱點(diǎn)后,發(fā)現(xiàn)手機(jī)上不了網(wǎng),請檢查下如下配置是否開啟:
Snip20170517_215.png
Snip20170517_216.png

以上默認(rèn)是開啟的,但是如果是升級Yosemit系統(tǒng)后不能設(shè)置IP地址上網(wǎng)請看以下解決方案:
打開終端按如下命令操作
1.列出你的網(wǎng)卡

networksetup -listallnetworkservices

2.關(guān)閉ipv6

networksetup -setv6off "網(wǎng)卡名字"

注:
關(guān)于”網(wǎng)卡名字“,有線網(wǎng)一般默認(rèn)名字是Ethernet,無線網(wǎng)默認(rèn)名字是Wi-Fi,在第1步的命令里可以看到。在2步中網(wǎng)卡名字有沒有引號好像都可以。

Snip20170517_217.png

具體看Mac收集的技巧及bug

還有其他設(shè)置網(wǎng)絡(luò)的設(shè)置:

networksetup -listnetworkserviceorder
networksetup -listallnetworkservices
networksetup -listallhardwareports
networksetup -detectnewhardware
networksetup -getmacaddress <hardwareport or device name>
networksetup -getcomputername
networksetup -setcomputername <name>
networksetup -getinfo <networkservice>
networksetup -setmanual <networkservice> <ip> <subnet> <router>
networksetup -setdhcp <networkservice> [clientid]
networksetup -setbootp <networkservice>
networksetup -setmanualwithdhcprouter <networkservice> <ip> 
networksetup -getadditionalroutes <networkservice>
networksetup -setadditionalroutes <networkservice> [ <dest> <mask> <gateway> ]*
networksetup -setv4off <networkservice>
networksetup -setv6off <networkservice>
networksetup -setv6automatic <networkservice>
networksetup -setv6LinkLocal <networkservice>
networksetup -setv6manual <networkservice> <networkservice> <address> <prefixlength> <router>
networksetup -getv6additionalroutes <networkservice>
networksetup -setv6additionalroutes <networkservice> [ <dest> <prefixlength> <gateway> ]*
networksetup -getdnsservers <networkservice>
networksetup -setdnsservers <networkservice> <dns1> [dns2] [...] 
networksetup -getsearchdomains <networkservice>
networksetup -setsearchdomains <networkservice> <domain1> [domain2] [...] 
networksetup -create6to4service <newnetworkservicename> 
networksetup -set6to4automatic <networkservice> 
networksetup -set6to4manual <networkservice> <relayaddress> 
networksetup -getftpproxy <networkservice>
networksetup -setftpproxy <networkservice> <domain> <port number> <authenticated> <username> <password>
networksetup -setftpproxystate <networkservice> <on off>
networksetup -getwebproxy <networkservice>
networksetup -setwebproxy <networkservice> <domain> <port number> <authenticated> <username> <password>
networksetup -setwebproxystate <networkservice> <on off>
networksetup -getsecurewebproxy <networkservice>
networksetup -setsecurewebproxy <networkservice> <domain> <port number> <authenticated> <username> <password>
networksetup -setsecurewebproxystate <networkservice> <on off>
networksetup -getstreamingproxy <networkservice>
networksetup -setstreamingproxy <networkservice> <domain> <port number> <authenticated> <username> <password>
networksetup -setstreamingproxystate <networkservice> <on off>
networksetup -getgopherproxy <networkservice>
networksetup -setgopherproxy <networkservice> <domain> <port number> <authenticated> <username> <password>
networksetup -setgopherproxystate <networkservice> <on off>
networksetup -getsocksfirewallproxy <networkservice>
networksetup -setsocksfirewallproxy <networkservice> <domain> <port number> <authenticated> <username> <password>
networksetup -setsocksfirewallproxystate <networkservice> <on off>
networksetup -getproxybypassdomains <networkservice>
networksetup -setproxybypassdomains <networkservice> <domain1> [domain2] [...] 
networksetup -getproxyautodiscovery <networkservice>
networksetup -setproxyautodiscovery <networkservice> <on off>
networksetup -getpassiveftp <networkservice>
networksetup -setpassiveftp <networkservice> <on off>
networksetup -getairportnetwork <device name>
networksetup -setairportnetwork <device name> <network> [password]
networksetup -getairportpower <device name>
networksetup -setairportpower <device name> <on off>
networksetup -listpreferredwirelessnetworks <device name>
networksetup -addpreferredwirelessnetworkatindex <device name> <network> <index> <security type> [password]
networksetup -removepreferredwirelessnetwork <device name> <network>
networksetup -removeallpreferredwirelessnetworks <device name>
networksetup -getnetworkserviceenabled <networkservice>
networksetup -setnetworkserviceenabled <networkservice> <on off>
networksetup -createnetworkservice <newnetworkservicename> <hardwareport>
networksetup -renamenetworkservice <networkservice> <newnetworkservicename>
networksetup -duplicatenetworkservice <networkservice> <newnetworkservicename>
networksetup -removenetworkservice <networkservice>
networksetup -ordernetworkservices <service1> <service2> <service3> <...>
networksetup -getMTU <hardwareport or device name>
networksetup -setMTU <hardwareport or device name> <value>
networksetup -listvalidMTUrange <hardwareport or device name>
networksetup -getmedia <hardwareport or device name>
networksetup -setmedia <hardwareport or device name> <subtype> [option1] [option2] [...]
networksetup -listvalidmedia <hardwareport or device name>
networksetup -createVLAN <VLAN name> <parent device name> <tag>
networksetup -deleteVLAN <VLAN name> <parent device name> <tag>
networksetup -listVLANs
networksetup -listdevicesthatsupportVLAN
networksetup -isBondSupported <hardwareport>
networksetup -createBond <bondname> <hardwareport1> <hardwareport2> <...>
networksetup -deleteBond <bonddevicename>
networksetup -addDeviceToBond <hardwareport> <bonddevicename>
networksetup -removeDeviceFromBond <hardwareport> <bonddevicename>
networksetup -listBonds
networksetup -showBondStatus <bonddevicename>
networksetup -listpppoeservices
networksetup -showpppoestatus <service name ie., MyPPPoEService>
networksetup -createpppoeservice <device name ie., en0> <service name> <account name> <password> [pppoe service name]
networksetup -deletepppoeservice <service name>
networksetup -setpppoeaccountname <service name> <account name>
networksetup -setpppoepassword <service name> <password>
networksetup -connectpppoeservice <service name>
networksetup -disconnectpppoeservice <service name>
networksetup -getcurrentlocation
networksetup -listlocations
networksetup -createlocation <location name> [populate]
networksetup -deletelocation <location name>
networksetup -switchtolocation <location name>
networksetup -listalluserprofiles
networksetup -listloginprofiles <service name>
networksetup -enablesystemprofile <service name> <on off>
networksetup -enableloginprofile <service name> <profile name> <on off>
networksetup -enableuserprofile <profile name> <on off>
networksetup -import8021xProfiles <service name> <file path>
networksetup -export8021xProfiles <service name> <file path> <yes no>
networksetup -export8021xUserProfiles <file path> <yes no>
networksetup -export8021xLoginProfiles <service name> <file path> <yes no>
networksetup -export8021xSystemProfile <service name> <file path> <yes no>
networksetup -settlsidentityonsystemprofile <service name> <file path> <passphrase>
>networksetup -settlsidentityonuserprofile <profile name> <file path> <passphrase>networksetup -deletesystemprofile <service name> 
networksetup -deleteloginprofile <service name> <profile name>
networksetup -deleteuserprofile <profile name>
networksetup -version
networksetup -help
networksetup -printcommands

下圖中的設(shè)置分別是:

關(guān)閉:networksetup -setv6off <networkservice>
手動:networksetup -setv6automatic <networkservice>
本地:networksetup -setv6LinkLocal <networkservice>

Snip20170519_257.png
三、服務(wù)器端測試

蘋果明確表示服務(wù)器不需要支持 IPv6,但是有一點(diǎn)蘋果沒有指出來需要說明一下:雖然你的服務(wù)器不用支持 IPv6,但是我蘋果這邊會用IPV6的地址來測試訪問你的服務(wù)器域名,如果我們服務(wù)器所掛的DNS服務(wù)器不支持IPV6地址前來查詢那么也就無法響應(yīng)網(wǎng)絡(luò)請求了。如果你的服務(wù)器是IPV4地址,那么DNS服務(wù)器上可以添加一條域名與IPV6地址的解析條目,然后解析出來的IPV6地址指向一臺中轉(zhuǎn)路由器(IPV6<=>IPV4),這樣通過中轉(zhuǎn)路由器出來的就是IPV4地址了,這樣就可以大大方方響應(yīng)你的網(wǎng)絡(luò)請求了。
測試是否支持IPV6查詢,終端輸入以下命令:

dig +nocmd +nostats www.baidu.com AAAA

解析后的結(jié)果如下,那說明是支持的:

Snip20170621_20.png

具體的可參見:
App store 應(yīng)用審核由于 IPv6 網(wǎng)絡(luò)問題被拒的一點(diǎn)分析

【指南】本地如何搭建IPv6環(huán)境測試你的APP
搭建IPv6本地環(huán)境測試App

以上!!!

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

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