13

Yesterday, I submitted my app for review, but I got this message from Apple:

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

Specifically, upon review we have found the application still experiences a loading issue and unable to review the application content.

My app uses ionic framework, how can I fix this problem?

I already used domain to access my server, but this problem still exists.

Sam Hanley
  • 4,707
  • 7
  • 35
  • 63
Jinson P L
  • 131
  • 1
  • 1
  • 4
  • Do you use http or https for your API calls ? – Gihan Jul 21 '16 at 08:45
  • Please check your server response. it should work while Apple's testing. They are not able to see the content. – Gagan_iOS Jul 21 '16 at 09:05
  • @jinson PL : is your app approved with following process ?? – Badal Shah Jul 22 '16 at 18:48
  • while calling API from my iOS app(device) to server. My device is connected to IPv6 network. And API which i am calling is with IPv4 network. I created the app using swift and i am using Alamofire for calling API and Reachability for checking Internet connection. What should i do for this. Any thing i need to do from app side – VJVJ Jul 27 '16 at 07:33

4 Answers4

30

Yes. According to apple's policy , your application must supports IPV6. so, please check your application supports IPV6. Supporting IPv6 in iOS 9

To test, if your application supports IPV6 or not please check this ,

Supporting IPv6 DNS64/NAT64 Networks

To check with creating follow this steps , which indicate on apple's page .

To set up a local IPv6 Wi-Fi network using your Mac


1) Make sure your Mac is connected to the Internet(with ethernet), but not through Wi-Fi.

enter image description here

2) Launch System Preferences from your Dock, LaunchPad, or the Apple menu.

enter image description here

3) Press the Option key and click Sharing. Don’t release the Option key yet. (don't forget to press option key)

enter image description here

4)Select Internet Sharing in the list of sharing services.

5)Release the Option key.

6)Select the Create NAT64 Network checkbox.

7)Choose the network interface that provides your Internet connection, such as Thunderbolt Ethernet or Only Ethernet.

8)Select the Wi-Fi checkbox.

enter image description here

9)Click Wi-Fi Options, and configure the network name and security options for your network.

10) Select the Internet Sharing checkbox to enable your local network.

11)When prompted to confirm you want to begin sharing, click Start

enter image description here

12) Now your mac mini is working as a hotspot and useing IPv6 NAT64 network

enter image description here

(looks like above image when hotspot created)

Now connect your iphone with your mac mini's hotspot. and Test your Application it's working properly or not.

I hope this answer is helpful you.

Edit :- Don't forget to add below frameworks.

1) WebKit

2) CFNetwork

enter image description here

You will find all the information on this link related to ipv6 policy. Supporting IPv6 DNS64/NAT64 Networks

Badal Shah
  • 7,541
  • 2
  • 30
  • 65
  • Thanks for your answer....We shall add the frameworks what you have suggested 1) WebKit 2) CFNetwork and will upload to App store. – Jinson P L Jul 21 '16 at 13:16
  • have you also checked it with setting hotspot ?? – Badal Shah Jul 21 '16 at 13:34
  • it's just a process to check that if your app run propely with ipv6 or not ! – Badal Shah Jul 21 '16 at 14:16
  • @Badal Shah while calling API from my iOS app(device) to server. My device is connected to IPv6 network. And API which i am calling is with IPv4 network. I created the app using swift and i am using Alamofire for calling API and Reachability for checking Internet connection. What should i do for this – VJVJ Jul 27 '16 at 07:19
  • @VJVJ : just check your app , when you connected with ipv6 , is your device work correctly. or not ? and add two framework in your app. webkit and cfnetwork. – Badal Shah Jul 27 '16 at 08:09
  • I added both the frameworks. I am testing in simulator and when i open any page in browser says unreachable except facebook, gmail like which supports IPv6 only that is getting opened. Same error i am getting when i run in simulator – VJVJ Jul 27 '16 at 08:12
  • means i cant understand ? – Badal Shah Jul 27 '16 at 08:17
  • please see my question https://stackoverflow.com/questions/38604742/unable-to-connect-from-ipv6-to-ipv4-error-domain-nsurlerrordomain-code-1003-a – VJVJ Jul 27 '16 at 08:17
  • i think this error is not related to ipv6 and ipv4 . have you tried it with ipv4 ? is it work perfectly ? – Badal Shah Jul 27 '16 at 08:20
  • My system is connected with IPv6 network. I am running my iOS app in simulator. When i am calling API It shows error Domain=NSURLErrorDomain code=-1003 "A server with the specified hostname could not be found. – VJVJ Jul 27 '16 at 08:20
  • Let us [continue this discussion in chat](http://chat.stackoverflow.com/rooms/118393/discussion-between-badal-shah-and-vjvj). – Badal Shah Jul 27 '16 at 08:20
  • @BadalShah not display "Create NAT64 Network" option in OS X El Captain. – Pramod Tapaniya Aug 17 '16 at 07:10
  • Have you prrssed option key ?? – Badal Shah Aug 18 '16 at 04:52
  • @BadalShah where i have to press option key?? – Pramod Tapaniya Aug 19 '16 at 07:08
  • you need to press option key when you click on sharing . first press option key and with pressing option key press on sharing with mouse . – Badal Shah Aug 19 '16 at 08:18
  • As @lucianoenrico mentioned, it sometimes work in the test environment (with the iPhone with 3/4G off, WiFi connected to the NAT64), but not in Apple. – user276648 Sep 07 '16 at 00:51
  • @JinsonPL I have the same issue, they rejected app saying same reason. What was the solution just adding CFNetwork and Webkit? – BhushanVU Oct 06 '16 at 06:44
  • @BadalShah Thanks for your answer. I have a same problem, I check with NAT64 network and its working fine and Apple is still rejected my app with same reason. Do you have any idea? – Nirmalsinh Rathod Nov 18 '16 at 04:29
  • @Nirmalsinh just add 2 framework webkit and CFnetwork and upload your app to appstore . it will be approve . – Badal Shah Nov 18 '16 at 05:13
  • Apple representative will contact me in 2-3 days. So I will wait for them call. Also, I will add these two framework into app also. Thanks for quick response. – Nirmalsinh Rathod Nov 18 '16 at 06:45
  • 1
    If your internet connection or ISP doesn't support IPv6 , This solution will not work. – Blind Ninja Dec 13 '16 at 07:53
  • Note that the Option key is the Alt key apparently, not the Command key. For us PC guys. – Asmund Feb 12 '17 at 21:54
2

We also faced the same issue. Just registered your website with any CDN like cloudFlare and your app will be approved next time no need to shift the whole site to any other server. This is the easiest way to get approval from app store.

jimmy
  • 35
  • 4
1

I think Apple has something wrong with this error!

I have an app (ionic app) rejected 3 times (during Nov 2016) for the same error and lastly accepted without making any change related to IPv6!

You may need to check your app for startup errors if you think that you have nothing to do with IPv6.

By the way: I did not check IPv6 compatibility on my app, and even more the app - in its inner views - has a connection to a webpage that hosted on a shared host with no IPv6 support!!

Sangwin Gawande
  • 7,658
  • 8
  • 48
  • 66
Awad Haj
  • 579
  • 7
  • 17
0

Please note that sometimes the mobile app works in the test environment but not in the Apple own test environment. Following this and this link can be very helpful in determining what's the problem with apple rejections. It is clearly stated that the test environment is not exactly the same

Glorfindel
  • 21,988
  • 13
  • 81
  • 109
lucianoenrico
  • 1,486
  • 1
  • 13
  • 21
  • while calling API from my iOS app(device) to server. My device is connected to IPv6 network. And API which i am calling is with IPv4 network. I created the app using swift and i am using Alamofire for calling API and Reachability for checking Internet connection. What should i do for this. Any thing i need to do from app side – VJVJ Jul 27 '16 at 07:25
  • Apple says to avoid preflight using Reachability. Here https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html (section Connect Without Preflight). if you have to use Reachability check that it supports IPv6 and make sure to use SCNetworkReachabilityCreateWithName – lucianoenrico Jul 27 '16 at 09:58