Problems with iOS with IPv6 and Azure

2019-05-06 09:34发布

问题:

One of our Xamarin.iOS-Apps got rejected because the Service-URI seems to not be available from IPv6 networks. Starting 01.06.2016, Apple wants all iOS-Apps to be fully compatible in IPv6 only networks.

It seems that Microsoft Azure is not supporting IPv6 yet. Has anyone faced similar problems and knows how to solve this?

For the record, we are using MvvmCross as Framework.

Update: This is Apple's Response:

Hello,

Thank you for resubmitting your app for review. However, the previous issue has not been resolved.


Performance - 2.1

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

Specifically, we are still encountering a server error on launch.

The steps to reproduce are:

We've attached screenshot(s) for your reference.

Next Steps

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.

If we misunderstood the intended behavior of your app, please reply to this message in Resolution Center to provide information on how these features were intended to work.

For new apps, uninstall all previous versions of your app from a device, then install and follow the steps to reproduce the issue(s). For updates, install the new version as an update to the previous version, then follow the steps to reproduce the issue(s).

Resources

For information about supporting IPv6 Networks, please refer to Supporting IPv6 DNS64/NAT64 Networks and About Networking

If you have difficulty reproducing a reported issue, please try testing the workflow described in Technical Q&A QA1764: How to reproduce bugs reported against App Store submissions.

If you have code-level questions after utilizing the above resources, you may wish to consult with Apple Developer Technical Support. When the DTS engineer follows up with you, please be ready to provide:

  • complete details of your rejection issue(s)
  • screenshots
  • steps to reproduce the issue(s)
  • symbolicated crash logs - if your issue results in a crash log

We look forward to reviewing your revised app.

Best regards,

App Store Review

回答1:

What we did in the end to solve this issue:

  1. We now cache the web application we are calling via Cloudflare, because Cloudflare can act as an IPv6-IPv4-Gateway
  2. We now use ModernHttpClient on Xamarin, that's what you should do anyway to have better HTTP-Performance. It uses the native networking libraries on each platform, and therefore it will use the iOS-Libraries that handle all the IPv6 on their own.

I hope that helps. At least for us it worked in multiple cases. Seems like the .NET networking is not working properly on native iOS in terms of IPv6 compatibility.