IPv6 for Unity iOS Exports



  • @scuta: The trick is, that the IPv6 network has a DNS64/NAT64 "gateway" to the IPv4 world. Even if your device doesn't see any IPv4 addresses ever, it can connect through this gateway to any IPv4 server. This is what the shared IPv6-only network on MacOS provides.

    In theory, this means Apple's testing lab should also provide this but they don't. As described in the first post, you should make sure you point out that you tested along their requirements, that you use UDP initiated by the client and expect UDP responses from the (IPv4) server, which is Photon.

    By all means, you should test TCP with the MacOS IPv6-only WiFi, too. If that's OK, Apple should accept the game, if you run TCP as workaround during submission.

    If you need help communicating with Apple, we're happy to do to. However, we never got involved in any specific case and never got useful info by them, why their tests fail. It's not in our hands, sadly!
  • Thanks @Tobias that was an awesome answer and it pretty much cleared it up for me. I understand completely that you cannot do anything about this, Apple's attitude was always like this so no surprise there.. By the way I switched to TCP and it was magically accepted although it was only a test-flight build. Anyway I will stick around and update you guys whether it passes the live review or not.
  • I was directed here, having the exact same issue as @KevinB earlier in this thread (using Photon Server's Load Balancing application, Apple can successfully connect to our master server, but their connection times out trying to connect to the game server on the same machine, just with a different port).

    It looks as though UDP is a pretty consistent culprit in this, having read the replies to this thread, but we're not willing to switch protocols because of this. Instead, we have implemented an "offline mode" of sorts for our game that allows our app to pass Apple's review, even when Photon times out.

    Having said that, have you, @Tobias, or anyone else at Exit Games, tried to create and submit a small iOS app that fit this criteria? Ideally both the client and server would be configured with deeper logging than customers have access to to see if:
    • Apple is even sending any UDP traffic to the game server that maybe Photon is mis-handling/ignoring;
    • if they're not even getting that far (e.g., their network setup is bad).
    It might provide better data for them than we, as customers, can provide if you can show them that literally nothing is making its way to your server. Or, in the other case, it could give you more information about a possible bug that's been hard to track down on your end.

    This issue has plagued me for months now and I've been rejected many, many times because of it. It sounds like you've been able to hop on a call with Apple about this in the past, but if you actually had an iOS app in the store for them to reference (and for you to monitor), it might make things easier for both sides to diagnose. What do you think?
  • Whenever I try to connect with the DNS64/NAT64 testing hotspot, I get this error: 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 ExitGames.Client.Photon.SocketUdp:DnsAndConnect() (Filename: /Users/builduser/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51) Cause: ExceptionOnConnect ConnexionManagement:OnFailedToConnectToPhoton(DisconnectCause) NetworkingPeer:SendMonoMessage(PhotonNetworkingMessage, Object[]) NetworkingPeer:OnStatusChanged(StatusCode) ExitGames.Client.Photon.EnetPeer:DispatchIncomingCommands() ExitGames.Client.Photon.PhotonPeer:DispatchIncomingCommands() PhotonHandler:Update()
  • here the anwser from apple wow :/
    Thank you for your response. We do not have special procedures for testing PUN servers. Your app should work when submitted, just as other apps have done successfully. Your issues may or may not be related to the factors discussed in those forums.

    Your app is still failing to connect with the server.

    They cant connect to the server but when i testing it i can :/
  • @forplayers: When you get the "No such host is known" issue, then your test IPv6 network is not setup properly or something else blocks that net from accessing DNS/DNS64. This category of issues is a "setup problem". Maybe check the Mac's settings for the shared WiFi...

    @rayleigh: That is as unhelpful as ever by Apple.

    We thought about submitting our own app but have not had anything that seemed "release-able", as we only go for demos but it seems we have to get anything submitted. The big question is: Will we be able to learn anything from this?! We're not expecting to be able to start a conversation...
  • maxtytmaxtyt
    edited September 2017
    Same problem with PUN 1.75, Unity 5.3.6. Apple accepted my game updates all summer, but rejects now.
    I think of switching to TCP while it is on moderation and then switch back to UDP using backend. Hope this will help.
    I will update info on that later.
  • Switching to TCP did not help me.
  • Maybe I spamed with same builds or maybe switching to TCP helped but my game is finally Ready for Sale!
  • Now they are again rejecting my application :(

    This is the message from Apple:

    "We discovered one or more bugs in your app when reviewed on iPad running iOS 11.0.2 on Wi-Fi connected to an IPv6 network."

    And i replied like this:

    "We are using PUN and that we tested the networkcode versus Apple's own test procedures as described in Apple's own test-description page:
    So the bug report is not an indication as to where the problem lies, but the fact that the iOS app works in the test environment and not in App Review is an indication that the app / App Review interaction needs further review. "

    No help, they rejected again .

    Any suggestions?
  • Having exactly same problem with Apple Reviewer....

    Now waiting for someone to call me from Apple lol not sure what they wanna discuss because it is obvious they have problems and not me
  • +1, can't get accepted, and all attempts at reasoning with them have been denied so far.
  • Creating an offline mode helped me out for them to see the content, you should give it a try.
  • We're having the same issue here. We will implement offline playing just for the sake of the app being approved, since Apple won't get along with PUN
  • we got rejected by apple 2 times with the same reason. they told us to test the game through their NAT64 guide. We did it, and everything was going well, but still got rejected.
    Then we thought that would be we were not using the right Ipv6 enviroment, so we called our ISP to set up a new Ipv6-only network. Then, using that network on Unity Editor to connect UsingBestRegion, we got an error like this:

    Connect() to 'ns.exitgames.com' (InterNetwork) failed: System.Net.Sockets.SocketException: A socket operation was attempted to an unreachable network.

    at System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP, Boolean requireSocketPolicy) [0x00000] in :0
    at System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP) [0x00000] in :0
    at System.Net.Sockets.Socket.Connect (System.Net.IPAddress address, Int32 port) [0x00000] in :0
    at ExitGames.Client.Photon.SocketUdp.DnsAndConnect () [0x00000] in :0

    Please check this. Thanks :smile:
  • Hi all ,
    I am using photon voip plugin in my projetc , once i open the app in ios device app is getting crashed , it is working fine in android and unity editor , But in ios device it was crashing.Currently testing the app after removing all other dependencies , Exceptn voip no other things involved in project and app is still getting crashed in ios device .It would be great if u guys help me in fixing this issue, Thanks in advance :)
  • Hi @Damu,

    Thank you for choosing Photon!

    Your post is off topic here.
    Take a look here or here.
  • r3lazx said:

    we got rejected by apple 2 times with the same reason. they told us to test the game through their NAT64 guide. We did it, and everything was going well, but still got rejected.
    Then we thought that would be we were not using the right Ipv6 enviroment, so we called our ISP to set up a new Ipv6-only network.

    Well, a pure IPv6 is not supported by the Photon Cloud, as we (still!) have a hard time finding hosting solutions for that.
    However, pure IPv6 is not a requirement by Apple. IPv6 networks with DNS64/NAT64 are.
    The latter two techs are making IPv4 servers available in the IPv6 network (by resolving the hostname accordingly and by doing NAT between both IP versions.

    Without DNS64/NAT64, the Photon Cloud is not available but Apple's review seems to run into another kind of issue (they do have DNS64/NAT64 but seem to block some UDP datagrams coming from the server).

    @r3lazx: Please mail us to [email protected], if you're interested to do a test-submission with us. We could try using different ports.
  • well, I have photon chat and photon voice on unity. None connect on ipv6 tests on my iphone. None of them. What gives?
Sign In or Register to comment.