AppStore IPv6-only審核被拒原因分析及解決方案-a,appstoreipv6-only

來源:互聯網
上載者:User

AppStore IPv6-only審核被拒原因分析及解決方案-a,appstoreipv6-only
Apple關於IPV6規定

 日前,蘋果公司向開發人員發出提醒,公司將會修改市集App Store的相關規定,所有IOS應用必須包含對IPv6-only標準的支援。據悉,該規定在6月1日生效,所有提交至蘋果App Store的應用申請必須要相容面向硬體識別和網路路由的最新互連網協議--IPv6-only標準。而蘋果的這一舉措也將有助於IPv6的加速普及。

1.只需要在蘋果最新的系統上保證IPV6的相容性即可。
2.NSURLConnection CFNetWork NSURLSession都是支援IPV6的在iOS9裝置上。
3.AFNetworking,由於曆史原因,應用代碼基本上都深度引用了AFHTTPRequestOperation類,所以目前API網路請求均需要通過NSURLConnection發送出去,經過測試NSURLConnection在最新的iOS9系統上是支援IPV6的。
4.Reachability在程式中被大量應用判斷網路狀態,但是在裡面卻使用了IPV4專用的API,經過測試,在iOS9以上系統IPV4和IPV6網路環境均可使用,但在iOS8上IPV4和IPV6切換的時候無法監測網路狀態的改變,可能是因為蘋果在iOS8上還沒有對IPV6進行相關的支援相關,但是這仍然滿足蘋果要求在最新系統版本上支援IPV6的需求,其實蘋果在iOS9以上對zero Address進行了處理,Reachability在iOS9上可以支援IPV6和IPV4,但在iOS9一下存在bug,監測網路會有問題。

避免被拒的措施
  • 使用網路通訊架構;

也就是是說推薦你使用 iOS SDK 內建的,構建於 socket 上層的網路通訊架構,或是第三方的網路通訊架構。這樣,使用網路通訊架構的話,上面的第 2 條大體上是不用操心的。如果你使用的是第三方的網路通訊架構的話,一定記得詢問該架構的開發商:“你們支援 IPv6 嗎?”
作為網路通訊架構其中之一的 ProudNet™ 是支援 IPv6 的喲。自 2015 年 12 月的更新版本開始支援。ProudNet 的使用者如果要想支援 IPv6 的話,應該使用 2015 年 12 月版本,或更高的版本。

  • 避免使用 IPv4 專用的 API;

如果你親自編程 socket 層的話,記得不能使用 IPv4 專用 API。比如說,你不能使用如下這些 API (光是使用這些函數本身,是否會成為蘋果方面拒絕通過應用審核的事由,目前還不清楚。反正 ProudNet 目前是全然不使用這些函數的)。
inet_addr()
inet_aton()
inet_lnaof()
inet_makeaddr()
inet_netof()
inet_network()
inet_ntoa()
inet_ntoa_r()
bindresvport()
getipv4sourcefilter()
setipv4sourcefilter()
如果要測試在 IPv6 的環境下是否運轉正常,你需要構建 IPv6 only 的網路環境。方法有很多種。我們使用的是通過 Mac 機器的方法。

避免使用寫入程式碼地址(IP地址)

蘋果使用的是“寫入程式碼地址”這樣的術語。不過這大體上只是對福士友好的簡化說法。正確的學名其實應該叫 IP literal。比方說形如 “11.22.33.44” 這種啦。
另一方面,我們通常所說的 “hostname”,比方說“server1.mygame.com”這種,學名叫 FQDN (fully qualified domain name)。
你問,通過“寫入程式碼地址”,也就是我們所說的 IP literal 連入伺服器的話會有什麼樣的後果呢?一些 IPv6 網路下的用戶端會連不上 IPv4 網路下的伺服器(雖說 iOS 9.2 以後這個問題會部分解決,但是沒法保證在所有 IPv6 網路下都沒問題)。
反之亦然—用戶端在 IPv4 下,伺服器 IPv6。
至於連不上的原因嗎,要從 NAT64 / DNS64 的聯動關係說起。因為內容有點長,這裡就不贅述了。
那麼應該腫麼辦呢?乖乖地聽從蘋果大人所“指示”(?)的。通過 FQDN 而不是 IPv4 literal 的連入的情況下,伺服器要能夠接收。用戶端串連伺服器時則要使用 FQDN。

舉例說明上面的內容:

 - 11.22.33.44 ==> 蘋果會屏蔽你 - server.mygame.com ==> Ok - 11:22:33:44:55:66:77:88 ==> 蘋果會屏蔽你

關於IPV6

隨著互連網的迅速發展,各種連網裝置總數的不斷增加,傳統的IPv4地址耗盡已經是可以預見的未來,因此,用於替代現行版本IP協議(IPv4)的下一代IP協議,IPv6技術已成為未來的主流IP技術。
據蘋果在開發人員網站發布的訊息稱,現有的很多應用已經相容IPv6-only協議了,因為該協議已經得到NSURLSession和CFNetwork API的支援。使用IPv4 API或硬體編碼IP地址的開發人員需要修改應用代碼才能相容這項新政策。
除了蘋果之外,整個行業也在慢慢接受IPv6-only協議,尤其是提供行動電話通訊服務的電訊廠商。隨著各種連網裝置總數的增加,以及新手機推出的速度越來越快,IPv4地址將迅速耗盡。作為後續技術,IPv6將在不遠的將來完全取代IPv4。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.