IPv6 for Unity iOS Exports



  • I didn't, no.
  • Now we are having the same issue. We already have 2 rejects.
    We pointed that we use latest PUN and followed Apple doc "Test for IPv6 DNS64/NAT64", but app still rejected.

    Our setup is PUN 1.75, Unity 5.3.6f1.

    We are forcing "eu" region for all clients. Guy from Apple asked to check if server "is able to take connections from 17.* IP addresses" (Apple owns this range). Can you confirm this?
  • KevinB
    edited September 2016
    @Tobias have you guys tested under a true IPv6 client environment instead of the Mac simulated IPv6 environment?

    according to the guy from Apple Developer Technical Support
    "I’m told that there are cell providers that are making IPv6-only device available. In fact, they are the reason for this push for IPv6-only support. This is how DTS will replicate the environment and you may be able to do the same."

    the Apple Review team may not be using the Mac simulated IPv6 for testing, but a real IPv6 environment.

    we haven't tested under a true IPv6 environment yet.
  • @XpandeR: The server can be reached by anyone's IP address.

    @KevinB: We don't currently run true IPv6 servers. Afaik, Azure doesn't have that option at all and we use it for some servers. The client is ready for that but so far, Apple told everyone that you need to work in DNS64/NAT64 networks.
    If this is the reason for the rejects, we will figure out a solution. Thanks for the input.
  • @Tobias I wasn't talking about true IPv6 servers. The Apple Developer Tech Support was referring to the internet service provider only offering IPv6 addresses, Apple App Review may be testing under such environment instead of doing a simulated DNS64/NAT64 by the Mac.
  • @Tobias from what I understand from the Apple Developer Tech Support, the Apple App Review team has their own NAT64 test environment, and they are not using the macOS NAT64 test environment. The tech support said that the macOS NAT64 test environment is flawed and does not follow RFC 6147 strictly, he suggested us to test under a real IPv6 client network.
  • We tested with proper IPv6 addresses at some point and that worked as well. But as said, for the Public Cloud, we don't have IPv6 addresses on the server side yet.
    If they tell us to test with real IPv6 network, that means we can't reach IPv4 servers anymore, afaik. Then we have to setup servers for that soon.
    A "real IPv6 network" means either public IPv6 addresses for the server OR some other NAT64/DNS64 solution.

    I will discuss the need for public IPv6 servers with the team.
  • well i am pretty sure they do not require us to have IPv6 server. what I meant was that they want us to test under a real world NAT64/DNS64 environment provided by internet service provider instead of simulate it under a macOS which is a flawed NAT64/DNS64 environment as claimed by them.

    they said there's one cell network that offer IPv6 only device which is the true test but they couldn't tell me which one it is because of NDA.
  • Hmmm. I'm out of ideas then. Neither do we know which network this could be, nor am I sure we got that in Germany, where we do most testing.
    It would make sense they either fix their test NAT64/DNS64 or accept the testing in it "as is". But I guess we can't move a giant.
    We will try to figure out if we can get hands on a better test environment. In theory, it should be OK if Exit Games tests and you just make sure Unity does not break it when exporting.
  • Just to make sure: We know there are a lot of you having this problem and we take it very serious. We will work on this during this week and find out what exactly is going on. We will keep you posted on the progress.
    In the mean time, please follow the guide in the first post and let Apple know you tested with their test environment.
  • @KevinB: Could you ask them what the bug is in their implementation on Mac?
  • Update: We now have a fully running IPv6 network in the office and are testing connections with public DNS64/NAT64 test servers. The idea is to replicate what Apple does in their submission-tests.

    While we thought we found the root cause for this yesterday, we can't reproduce it today. It might have to do with the OS or DNS-class, which doesn't always provide IPv6 addresses, even if the DNS should provide them. They seem to get filtered out in some cases.

    There are also more hints that the testing at Apple might have similar issues:

    We're on it. In the mean time, get in touch with dev-support when you get rejected.
  • @Tobias admin
    Hi, do you have new progress?
    We have 3 online games that use v 1.76 PUN. And we already have 3 rejects.

    Apple review team:
    We discovered one or more bugs in your app when reviewed on iPad and iPhone running iOS 10.0.2 on Wi-Fi connected to an IPv6 network.

    We are very anxious. And we hope you will solve the problem as soon as possible. Thanks for your hard work.
  • Tobias
    Tobias admin
    edited October 2016
    We did more testing and did not find issues on our end.
    We setup our office internet access to be fully IPv6 compatible. With that, we used various public DNS64 servers, which implement and route traffic through their NAT64 servers, just like Apple describes the process.
    The point here is that we got away from the (flawed) MacOS implementation of DNS64/NAT64 and to simulate what Apple might do when it tests your apps.
    Aside from sinking hours into configuring everything, we didn't find any issues with PUN. As long as iOS resolves hostnames into IPv6 addresses, those are used. There is no AAAA entry for any of our servers, so all IPv6 addresses will be NAT64 ones and the client is fine with that, too.

    For all we can test, PUN is doing fine and the issue must be in the setup or workflow that's used when you get rejected.

    We read that some rejections are not actually related to IPv6 but apps failing accidentally when IPv6 got tested. We read about cases where otherwise unsuspicious middleware/libs caused rejects.

    If you tested with Apple's tools, you should be reasonably save that no libs fail. If Apple rejects despite that, you need to ask them to let dev support test.

    I know this is totally not satisfactory and we will make more attempts at solving this but this week, we have to focus on console work. We will return to this topic when we got more time or better input. Later on, we might provide a library which has more debug logging for IPv6 cases, so you could submit that and get more input...
  • Tobias admin any news?
  • We confirmed with Unity that our workflow is OK and should work.
    A developer team was so nice to ask Apple some questions on behalf of us but the answers are either incorrect, misunderstood or we're not understanding Apple at all (as they promote DNS64, which we expect).
    We will get on another call with Apple and discuss with them. It all points to issues on their end.
    We want to do the call first, then decide if we have to activate plan "b" or "c". Hopefully the call is within a week (depends on them, not us).

    We feel bad for the issues this causes, even if this is not fully in our hands.
  • Hello,

    I'm using Unity3d v5.4.3f1, PUN v1.78 and they reject my game also.

    Also I wrote that i'm using "Unity3d v5.4.3f1, PUN v1.78 and it has to work .." to App Review Board but they only replied like "Please ensure that your app is compatible with IPv6 networks" and thats all.

    Is there any news ?

  • We didn't get a definite answer, if their testing is wrong or if we can do anything else. By all accounts, the test we do should be OK and what they expect.
    It seems that in most cases, submission is now OK, and you should pass. Did you get in touch with Apple? If you wanted to, you could include us in a call with them, if that can be arranged. If you could use the backup, let us know by mail: [email protected]. Thanks.
  • Hi Tobias,

    Thanks alot for your reply, I've contacted with them again and they approved.

  • @egekaraosmanoglu did you just send ipa to review repeatedly?
  • @Carter yes, after they reject the second binary with the latest version of pun and unity3d, i wrote a comment App Review Board that " then i have to wait till photon and apple will find a solution together" and then they approved magically :)
  • Thanks for letting us know.
    It's good to read Apple approves it finally - and at the same time it's sad this is such a hassle! Keep on pushing them!
  • hello guys i have been rejected two times i have send them info about this thing with iPV6 can you tell me other solutions ?
  • Hi. Unity 5.4.3 Photon 1.78. Photon Cloud EU. I don't have access to ipv6.
    3 12 2016 6:26

    Thank you for your response. Please run your app on a device while connected to an IPv6 network (all apps must support IPv6) to identify the issue(s), then revise and resubmit your app for review.

    Best regards,
    App Store Review
    3 12 2016 6:21

    Hi. I use Photon. They claim that support ipv6 ://forum.photonengine.com/discussion/7702/ipv6-for-unity-ios-exports/p2
    3 12 2016 1:28
    От: Apple
    Performance - 2.1

    During this review we discovered a bug in your app when reviewed on an actual iPad Air 2 and on iPhone 6s running iOS 10.1.1 on Wi-Fi connected to an IPv6 network.
  • Hi @Grinch,

    so you already told them, that you run their testing procedure? That's bad. We will discuss about that, maybe there is another solution for you. Can you maybe tell us which Unity and which PUN version you are using developing your app? Since there were also some changes, but they have been some weeks / months ago.

    Hi @anrum,

    did you Test for IPv6 DNS64/NAT64 Compatibility Regularly? If you didn't run this test, please do it and check if everything works fine for you. Then try to resubmit the app and tell them, that you used their described testing procedure.

    If you have already run the test, maybe it is enough telling them, that you did that testing. There were some successful results in the past.
  • @Christian_Simon so they have rejected it right now WTF :@ i cant update game about a week for now i am using Unity 5.4.3p1 and latest PUN plugin.
  • a week ago everything was ok and what did changed in this one week that is breaking IPV6 Connection i am really disappointed have tested everything is working on all platforms starting form android ending with UWP.
  • Connect() to 'ns.exitgames.com' () failed: System.Net.Sockets.SocketException: No such host is known
    at System.Net.Dns.hostent_to_IPHostEntry (System.String h_name, System.String[] h_aliases, System.String[] h_addrlist) [0x00000] in :0
    at System.Net.Dns.GetHostByName (System.String hostName) [0x00000] in :0
    at System.Net.Dns.GetHostEntry (System.String hostNameOrAddress) [0x00000] in :0
    at ExitGames.Client.Photon.IPhotonSocket.GetIpAddress (System.String address) [0x00000] in :0
    at ExitGames.Client.Photon.SocketUdp.DnsAndConnect () [0x00000] in :0

    (Filename: /Users/builduser/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

    OnFailedToConnectToPhoton: ExceptionOnConnect
    NetworkingPeer:SendMonoMessage(PhotonNetworkingMessage, Object[])

    this is log from iPhone 5s iOS 10.1.1
  • ok Got it guys UNITY 5.5.0f3 has no problem with connecting pun server using their guideline :)
  • Grinch said:

    ok Got it guys UNITY 5.5.0f3 has no problem with connecting pun server using their guideline :)

    That is awesome! I've gotten rejected twice now. I'll try to upgrade to 5.5.0f3 and upload again. Will get back with results!