23 Replies
      Latest reply: Dec 19, 2016 11:17 PM by jmansa RSS
      Paul Meng Level 1 Level 1 (0 points)

        Hi

         

        We follow the guideline to setup the IPv6 NAT64 environment to test our app works in the IPv6 NAT64 network.

        https://developer.apple.com/library/mac/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html#//apple_ref/doc/uid/TP40010220-CH213-SW1

         

        In the iOS Wi-fi setting it shows DNS 2001:2:0:aab1::1 and IP address shows 169.254.61.21, which should be correct based on another thread from the reply of this thread: https://forums.developer.apple.com/message/140901#140901 And our app works fine in the testing environment. However, our app still got rejected due to network problem in the reviewer's testing environement. We cannot replicate the problem and would like to post this to see if anybody having similar issue.


        We use AFNetworking 3.1 to issue the HTTP requests and test for reachability, which should be based on NSURLSession and fully support IPv6. We grepped the code and are sure that we don't have any IPv4 address in the code base. We are thinking to do Packet Capture to debug our case, but in the meantime we would also like to ask here to see if anybody could point out that potentital root of cause of the rejection.


        Thanks in advance.

        • Re: Pass the NAT64 IPv6 test but App Store rejected the build
          jemtec Level 1 Level 1 (0 points)

          I believe they have been using an invalid test environment with IPv4 turned off.  Mine was rejected for the same reason, but approved this morning with no changes on my part.  Unfortunately, I wasted a lot of time this week trying to debug this nonexistent issue.

          • Re: Pass the NAT64 IPv6 test but App Store rejected the build
            Triplefun-Damian Level 1 Level 1 (0 points)

            Same problem here - ours is a Unity app - works in the testing environment set up as described above, but failed Apple validation. No logs being sent either, so it's a bit frustrating

            • Re: Pass the NAT64 IPv6 test but App Store rejected the build
              Ben Qian Level 1 Level 1 (0 points)

              Same problem here - ours is hybrid app - works in the testing environment set up as described above, but failed Apple validation three times. Apple Review cannot load our login page over IPv6 network. Who can tell me why?

              • Re: Pass the NAT64 IPv6 test but App Store rejected the build
                vainol Level 1 Level 1 (0 points)

                Same issue, we are using getaddrinfo() to resolve a host name to an IP for connecting to our server and have tested it in both IPv6 NAT64, where we can see from the logs that it's getting an IP6 address and uses it to connect without any problems and in another network with just IPv4 support, where it is getting an IPv4 address and using that with no issues. This is however getting rejected in the review for not supporting IPv6.

                • Re: Pass the NAT64 IPv6 test but App Store rejected the build
                  Triplefun-Damian Level 1 Level 1 (0 points)

                  Okay, our app passed validation yesterday! What happened:

                   

                  • Apple tested our app and were unable to connect to our servers via IPv6 using the NAT64 setup
                  • They asked a fellow engineer to get in touch with us to explain what's going on. We're based in France, so the engineer they asked spoke French
                  • Before getting in touch with us, the engineer decided to also test the game, and with the same version, same internal network, same iPad version...it worked
                  • He rang us to explain what was going on - they're going to try and figure out what's going on internally - and did some tests with the app to make sure it passed normal validation, before releasing it

                   

                  So there does seem to be something going on internally with their networks, and I'd suggest trying to get in touch with Apple to see if you can get talking with an engineer who can test it. YMMV.

                   

                  Another thing to try is, when you submit your app for review, also submit a video showing the app running through the NAT64 setup and connecting properly.

                   

                  Note that as part of the $99 fee every year, you get two requests for technical assistance for free

                    • Re: Pass the NAT64 IPv6 test but App Store rejected the build
                      shahinz Level 1 Level 1 (0 points)

                      Having a very similar issue to all of yours' here. The App Review folks continue to fail to sign into our app using the demo account credentials provided with the submission. Stragne thing is the we have very recently submitted essentially the same codebase for other clients (with different configs and skins, of course) and they have ALL been published except for the app in question.

                       

                      I have almost lost my mind trying to reproduce the issue locally and despite numerous attempts (including following the steps here: http://apple.co/29kSjjB), have not yet succeeded.

                       

                      I have now escalated my issue with the review process to Apple engieers and currently awaiting their reponse to see how we can get to the bottom of this. It's somewhat encouraging to read that at least in your case there was an internal networking issue on their part.

                       

                      As soon as I have a resolution, I will post its synopsis here.

                        • Re: Pass the NAT64 IPv6 test but App Store rejected the build
                          shahinz Level 1 Level 1 (0 points)

                          The saga is over for us. I had to file an Apple Developer Technical Service ticket and get and Apple Engineer to check the sanity of my approach. It turned out that there is an apparent inconsistency between the way macOS El Capitan's NAT64 testing environment treats IPv6 addresses compared with the testing environment of App Store Review team.

                           

                          The Apple Engineer recommended that I keep re-submitting the app until yesterday (July 15) and if I still wasn't successful by then, to let him know.

                           

                          Strangely, an App Review Team member left a message in the Resolution Centre of iTunesConnect account wanting to speak with me over the phone. But before I got a chance, the app's status changed from 'In Review' to 'Pending Developer Release'. Just like that!

                           

                          So I can finally confirm that there was nothing inherently wrong with my codebase and the IPv6 related objections turned out to be entirely due to those network inconsistencies on the side of App Review environment.

                           

                          Glad this is all over, and so is our client.

                          • Re: Pass the NAT64 IPv6 test but App Store rejected the build
                            forkourse Level 1 Level 1 (0 points)

                            Can you share any tips on how to resolve the issue? Thank you.

                        • Re: Pass the NAT64 IPv6 test but App Store rejected the build
                          Andy Yang Level 1 Level 1 (0 points)

                          Same problem here -ours is KOKO app - We submitted for 3 times but all being rejected. We followed the guideline mentioned above and made a video for the reply but didn't work. We have another app use similar backend service and it passed the review. I was wondering if there is any other solution since we didn't violate other rules on the guideline. Really need the help, thanks in advance.

                          • Re: Pass the NAT64 IPv6 test but App Store rejected the build
                            jogu Level 1 Level 1 (0 points)

                            We've run into this problem too, in our case the issue is with an app that uses the third party sdk, and part of that SDK failed during the setup process for the App Store reviewer.

                             

                            Testing the same build of the app (via testflight) on the recommended NAT 64 test environment everything works just fine.

                             

                            We've asked DTS for help as reading through the thread that seems to be how other people solved the issue, waiting to hear back from them.

                              • Re: Pass the NAT64 IPv6 test but App Store rejected the build
                                Spot IT Level 1 Level 1 (0 points)

                                Hi jogu,

                                 

                                did you get any feedback from DTS?

                                  • Re: Pass the NAT64 IPv6 test but App Store rejected the build
                                    jogu Level 1 Level 1 (0 points)

                                    Yes, but so far it's very generic advice (yet I also can't share it here because it explicitly states that it's under NDA).

                                     

                                    The general upshot was "make sure you've actually tested your app". Just because App Review say it failed on IPv6 doesn't mean your app is working for them on IPv4, so the problem may not be IPv6 related. I know that one developer who complained about this issue it eventually turned out they've never tested the app build they gave to App Store review and their production server environment was actually broken... (Seriously people, enable the build for testflight and at least give it a smoke test before you send it for review!)

                                     

                                    The relevant next step for me seemed to be that I need to collect a packet trace of the app on an IPv6 network, then open a bug report with that, then send it to DTS along with details of which server(s) in the trace I think might be the ones App Review is having a problem with. (This seems rather unintuitive; surely it would be better for app store review to send me a packet trace so I can see which server they have a problem accessing!)

                                     

                                    Currently I'm very frustrated with the whole thing; there is currently no evidence that the problem is with my app.

                                • Re: Pass the NAT64 IPv6 test but App Store rejected the build
                                  kristianconk Level 1 Level 1 (0 points)

                                  Same problem to me.
                                  At first I thought that misuses the NSURLSession classes, so switch to AFNetworking, but again rejected, I contacted tech support and they told me that captures network traffic from my NAT64 and send it to the page report bugs (bug report number 27932723), and answer them with the number of report. Today I still awaiting a response.

                                    • Re: Pass the NAT64 IPv6 test but App Store rejected the build
                                      jogu Level 1 Level 1 (0 points)

                                      There are several actions you could take, from my experience:

                                       

                                      1. You need to make sure you are actually testing the build you sent app store. Make it available it on testflight and install it from testflight onto your test devices.

                                       

                                      2. You need to test on a real IPv6 network, ideally with IPv4 disabled - eg. give assign bogus IPv4 IP addresses. (The NAT64 test network is not a real IPv6 network, it usually communicates with the server over IPv4. There may be a problem with your server that you will only see what you access it on a real IPv6 network. AppStore Review use a real IPv6 network.) You can check if you're on a real IPv6 environment by visiting http://ipv6.whatismyv6.comfrom safari on the device.

                                       

                                      3. If you've sent the bug number to DTS and not heard back from them within a couple of days, follow up asking for a status update. Beware that the final response from DTS may well just be something like "Our review of the issue indicates that this is an issue which can only be investigated by the App Review Team."

                                       

                                      4. Try telling app review you've raised a bug, give them the id, and explain that you have fully tested your actual submitted app on IPv6 (which you will have once you've done "1" and "2") and it works fine, so you're confident the problem is with their network, and ask them what else you can do to show that the app works fine.

                                        • Re: Pass the NAT64 IPv6 test but App Store rejected the build
                                          kristianconk Level 1 Level 1 (0 points)

                                          Thanks for the help, I contacted DTS for a status update and they answer me that the DNS response whit an IPV6 adress, so the app send the request to the IPV6, but my server hast port 80 closed for IPV6 and response error. This behavior can not reproduce in NAT64. So I passed the status to my client (is not my server or mi app)  in order to they resolve the server problem.

                                      • Re: Pass the NAT64 IPv6 test but App Store rejected the build
                                        tagnal Level 1 Level 1 (0 points)

                                        Just a heads up...

                                         

                                        I just want to say that my app was rejected twice.  They said it was crashing on iPad and iPhone while connected to an iPv6 network.  However, after some back and forth with them, they finally revelaed it worked "as expected" on iPhone but the iPad was crashing.  Which frustrated me because I spent so much time trying to figure out the networking issue when that wasn't the issue at all.

                                         

                                        It turns out that in the UI for one of the iPad screens, we were passing in float values into a UIColor method.  So when it ran on 64-bit systems it would crash.  Changing it to CGFloat values fixed the issue and it no longer crashes on iPad.  (It's been several years since we updated the app and it was previously built for just 32-bit)

                                         

                                        So, just because they say it is an issue with running on an IPv6 network, it may have nothing to do with that.

                                        • Re: Pass the NAT64 IPv6 test but App Store rejected the build
                                          Younes Zaidi Level 1 Level 1 (0 points)



                                          My app is rejected 3 Time ..


                                          • 2. 1 PERFORMANCE: APP COMPLETENESS
                                          • 3. 1.1 BUSINESS: PAYMENTS - IN-APP PURCHASE

                                          Thank you for your resubmission and for addressing the issues with your app. Upon further review, we found the following:

                                          Performance - 2.1

                                           

                                          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.

                                           

                                          Specifically, your app displays an error message when we attempt to buy your In App Purchase products.

                                           

                                          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 Networksand About Networking

                                           

                                          Business - 3.1.1

                                           

                                          Your app uses intermediary currency to purchase items that function as non-consumable products but does not include a restore mechanism.

                                           

                                          Users restore transactions to maintain access to content that they've already purchased.

                                           

                                          Next Steps

                                           

                                          Please modify your app to include an optional user registration feature that allows users to restore their purchases to all of their iOS devices.

                                           

                                          We recommend indicating that account registration is necessary to restore previously purchased In-App Purchase products, and providing a way for users to register later if they wish to access this content in the future.

                                           

                                          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