IPV6 has been more and more widely supported, especially when Apple enforces that iOS (specifically iOS 9 and later) applications must support IPV6 (officially announced) and will further promote the use of IPV6.
However, the application of Apple as a client-mandated IPV6, is not a disguised requirement that the service side also need to be IPv6 support it? A lot of complaints have recently been found that because Azure does not support IPV6, application publishing that calls Azure services fails. Like the comments in this azure feedback.
First I agree that Azure or other service providers should have more support for IPV6, and that VMs and load balancing on Azure already support IPv6 in most areas (see here and here). But back to the question itself, is the iOS app publishing failure really due to a call to a service deployed on Azure? According to my analysis, no.
First, take a look at what the Apple Store will do to determine whether to support IPV6, and summarize the following points:
- Whether to use the network framework
- Whether to use an API that supports only IPV4 (note that the API here is not the server-side API, but rather the client references the API in the library, especially the network-related)
- Is there a IPV4 network address to write dead?
So it doesn't have anything to do with the server, unless the URI of the server is written to the IPV4 address.
Also, look at the Apple website about the service side of the statement:
Server Updates
If you had a server running on the wider Internet, it was not necessary to update your server immediately. Your server is accessible to ipv6-only devices via Dns64/nat64.
Finally, look at the entire process of client-to-server access, such as. An Apple client that supports IPV6 can work even if the server supports only IPv4.
In summary, if the iOS app fails to publish due to IPv6 detection failure, it should not blame the server, but should check its own client code:
- Is there a IPv4 address to write dead?
- Whether to use the underlying network API, such as Gethostbyname,gethostbyname2
- Whether to use small unit address storage types, such as uint32_t, in_addr
If iOS app publishing failed due to IPV6, is it a weird azure?