由於IPv6導致的iOS應用發布失敗,是否該怪Azure?

來源:互聯網
上載者:User

標籤:eth   ssi   orm   ddr   ref   ima   失敗   負載   ros   

IPv6已經被越來越廣泛的支援了,尤其是蘋果強制要求iOS (確切的說是iOS 9以及後續版本)應用必須支援IPv6之後(官方宣布),更將進一步推動IPv6的使用。

不過蘋果應用作為用戶端強制要求IPv6,是不是變相地要求服務端也得是IPv6支援的呢?最近就發現很多抱怨,說由於Azure不支援IPv6,所以導致調用了Azure服務的應用發布失敗。比如這個Azure feedback裡的評論。

首先我同意Azure或者其他服務提供者應該更多的支援IPv6,而且Azure上的VM和負載平衡在大部分地區已經支援IPv6了(具體可查看這裡和這裡)。不過回到這個問題的本身,iOS應用發布失敗真的是因為調用了部署在Azure上的服務導致的?根據我的分析,不是。

首先,來看看蘋果商店會做哪些檢測來判定是否支援IPv6,總結下來有以下幾點:

  1. 是否使用網路架構
  2. 是否使用只支援IPv4的API (注意這裡的API不是指服務端API,而是用戶端引用庫裡的API,尤其是網路相關的)
  3. 是否有寫死的IPv4網路地址

所以壓根就跟服務端沒什麼關係,除非把服務端的URI寫死成IPv4地址了。

另外,看看蘋果官網關於服務端的說法:

Server updates

If you have a server running on the wider Internet, it is not necessary to update your server immediately. Your server will be accessible to IPv6-only devices via DNS64/NAT64.

最後,看看用戶端到服務端訪問的全過程,如。即使服務端只支援IPv4,支援IPv6的蘋果用戶端也是可以工作的

 

綜上所述,如果iOS應用由於IPv6檢測失敗導致發布失敗,不應該去怪服務端,而應該檢查自己的用戶端代碼:

  1. 是否有寫死的IPv4地址
  2. 是否使用底層的網路API,比如gethostbyname,gethostbyname2
  3. 是否使用小單位地址儲存類型,比如uint32_t, in_addr

由於IPv6導致的iOS應用發布失敗,是否該怪Azure?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.