iOS review team cannot connect to game server on port 5056

Options
Has anyone experienced any issues around Apple's iOS review team not being able to connect to their game server when using the Photon Load Balancing project? I see traffic logs that they're connecting just fine to the master server (UDP port 5055), but when it comes time to disconnect their client and re-connect it to our game server (same machine, UDP port 5056), the request times out. I and many others can connect just fine via both IPv4- and IPv6-based networks.

Initially we thought the issue was because we're using Photon Server v3.4 which doesn't fully support IPv6 and Apple now reviews all apps inside an IPv6-only network. However, we switched all of our Photon code to use hostnames instead (following these instructions) and Apple still cannot connect to the game server.

I've gone through Apple's own documentation on how to set up a local IPv6 network and have confirmed a connection to both the master server and game server -- in fact, we've never heard of any issues outside of Apple on this, and our game has 5,000 users -- but since Apple cannot connect from within their network, they reject updates from time to time.

I'm wondering if Apple's network is firewalling port 5056 or if there's something else going on that people have run into. We're running our Photon servers on Amazon AWS using standard VMs with the applicable ports open (4520, 5055, and 5056). The version Apple is connecting to literally has both master and game server on the same machine, so there's no chance of a misconfiguration between VM instances in this case. I also turned off IPv6 entirely on that machine to limit the confusion it might cause (we simply rely on networks' DNS64/NAT64 support now to translate our A records/IPv4 addresses into AAAA records/IPv6 addresses).

Any thoughts?

Comments

  • chvetsov
    Options
    please take a look at this topic and ask your question there

    http://forum.photonengine.com/discussion/7702/ipv6-for-unity-ios-exports/p1

    best,
    ilya
  • shaun_cmune
    Options
    Hi,

    We had the same problem late last year. We lodged an appeal with the Apple Review Team. Turns out our app was working fine, and it was an issue unique to their IPv6 testing environment. They ended up calling us directly and apologizing for the delay, and approving our app immediately.

    Couple of things to check first;
    - Is your device using WWAN in your DNS64/NAT64 local network?
    - Does your DNS return an AAAA record? (It should not)

    https://forums.developer.apple.com/message/136166#136166

    Best regards,
    Shaun
  • chyro
    Options
    Hi.

    We encountered exactly same problem with our self-hosted Photon servers. We initially tried to make various changes and none helped. The only thing we learned was that Apple was able to connect to our Photon master server (port 5055) just fine and timed out while connecting to Photon game server (port 5056) after 10 seconds.

    After we had complained, one of the Apple rep called us and explained that they were actually able to connect to our game server from outside their review lab. Unfortunately our subsequent updates were rejected by their review team for the same reason. At the end we decided to try to change one thing that had initially sounded very dumb - the port number. Surprisingly, changing Photon game server port from 5056 to 5055 worked and our app is now approved for the store.

    Hope this can be useful for anyone who is using Photon and stuck in the app store review process.
  • srmatthe
    Options
    Just to echo the last post above.

    Our app had been continuously getting rejections since May despite previously having been approved.
    They were quoting IPv6 as the rejection reason due to the connection hanging. We're running a self hosted heavily modified version of LoadBalancing and for the dev environment this was running a simple Master\Game setup on the same machine.

    Much head scratching later and it came around that I was pushing a build for review last Friday. Desparately scouring the logs as Apple were testing I could see that they were hooking up to the Master server fine but they never reached the game server and it got rejected. Again, I ran through an identical test scenario here on a few different devices but couldn't reproduce.

    While searching for inspiration (and about to tear our AWS setup apart) this thread came up in a search.
    I spun up a new instance and shifted the Game server to that one, set the port to 5055, sent an appeal back to apple linking to this thread and gave a brief summary of what had been posted. I realised that the only real difference between the last version to be approved and the ones following were that the Master and Game servers had been merged onto the same box.

    Within about 20 minutes they were back on and testing the app again. This time the connections went through without a hitch.

    What did I get back from Apple ?

    Thank you for providing this information. Please consider previous issue resolved.


    followed by a rejection because I forgot to include the IAP for review as well haha.

    Submitted a new binary with the IAP on there as well and it sailed through.

    It might be worth putting this thread as a sticky or having it included in the docs regarding building for Apple\IPv6 stuff. It was a lifesaver for me.