xcodeios9ipv6ios9.2

IPV6 in iOS9 and configuring the IPV6 enable API


My application got rejected because it was not iPV6 enabled.

I had gone through the documentation and few study on iPV6 and many other links.

But I need to understand and need some more clarification on some points related to adoption of IPV6.

  1. When apple say "IPv6-only network" . Does it mean that I can not connect with the ipv4 server via socket programming or HTTP host ?

  2. To reach or communicate to the server which is ipv4 enabled, I have to adopt new apis provided by apple (nsurlsession and nscfnetwork) for http post?

  3. What is synthesis ipv6 address? Does it mean that I will write the domain or the ipv6 address in my client (iOS application) and iOS will convert ipv6 address into ipv4 and pass it to server via my socket programming or http post ?

    To synthesis the ipv6 address this function is required: getaddrinfo

  4. Example : I have my client(ios application) which communicate with the different server.

    a. Server1 is iPV4
    b.Server2 is ipv6

    How should I manage this ?

  5. Do I need any other external entity like DNS/NAT server which will help me to convert the ipv4 into ipv6? OR the iOS9 and above OS does it on their own?

  6. Ipv6 is compulsory from ios9.2 or from ios9 onwards?

  7. My application also supports ios8. In which there is no requirment for the ipv6 server. How can I manage the code for ios8 communication to ipv4 and synthesis code in ios9 for ipv6.

Please provide me clarification and help me to understand what exactly require for the ipv6.

I am new to network side code.


Solution

  • You can connect IPv4-Only Server only use domian name, not the ip address.

    Or you can use a NAT64 address (usually prefix with 64:ff9b::/96, and can be discovered by query AAAA records of IPv4 only server) when user is in a IPv6 only network.

    For most developer, you are not required to do anything.

    And you may try debug the App in a NAT64 network which can create by your macOS.

    Note: If you can, please use AFNetworking Library with version 3.x or higher.