ios - failing app store ipv6 but can't re-produce - ios

I have an app that is developed in React Native and uses an API to handle all of the data. The app has already been approved with no problems and no crashing.
I have (after WWDC) recently done some updates to the app and tested everything locally as well on a real device. The app works fine with no crashing at all.
Apple have come back with the following response:
"Performance - 2.1 Your app crashed on iPad and iPhone running iOS
10.2 connected to an IPv6 network when we: 1. Launched app 2. Tapped"
The issue is that I cannot replicate the issue happening on my local machine (we use ipv4 at our offices) and the server is not IPv6.
I did some research and as of WWDC (2015), apps cannot be released into the store unless their APIS are on IPv6 server. However, I'm struggling to understand why this would cause the app to crash as it does work fine on my machine and on my device.
Is there a way that I can replicate the issue that apple are having? And could the issue that Apple are having be because of the IPv6 issue?

Had the same problem. Then figured out that my app did not handle the scenario when the push notification permissions were rejected by the user. So it is best to check if you are prompting users for any permission (when app initially start) and see if the app behaves as expected when these permission are Rejected. (My guess is that testers at apple usually declines these permission when they are testing)

Related

App store rejects my app developed in expo although the app works completely fine while testing

App store rejects my app developed in expo although the app works completely fine while testing.
This is the message i get from apple:
**"We discovered one or more bugs in your app when reviewed on iPad running iOS 11.1 on Wi-Fi connected to an IPv6 network.
When user launches the app, app displays an error message.
Please see attached screenshots for details."
**
I have tested my app and it works completely fine in iOS 11.1. I tested in development mode and as well as without development mode.
Just tell that you can't test on an IPV6 network, and for know is fully working in IPV4. (It worked for me)
Apple is starting to prepare for a world where IPV4 "doesn't exist".
But not everybody has a proper environment for testing networking request on IPV6 layer.

Testing React Native via iPhone IOS

This may be a bit of a silly question but i haven't found a solid answer.
I have created a React Native app which includes making http requests to an external server (https://example.com).
When i plug my iPhone in, connect to wifi and deploy to device it works great. (All certificate signing etc is fine).
Should this app still work on my phone once I have disconnected it from my macbook and/or disconnected it from the same wifi.
It worked initially but then eventually kept crashing on load.
As soon as i plugged it back in and tested it works. Is there a way to keep this app on my device permanently?
No, it won't work. While you're testing it, the application on your phone is loading your React Native JS code bundle from a server running on your computer, normally on http://localhost:8081.
Once the phone loses access to that server, the app on the phone will lose access to that JS bundle and it will crash.
You have to install the app on your phone by creating an IPA (which requires an Apple Developer account), so that the app can be used anytime.

iOS app rejected because app crash on iOS 10.2 on ipv6

I have uploaded my app to Apple store. I am using iOS 10.2. After upload, I got a rejection message:
Your app crashes on iPad and iPhone running iOS 10.2 connected to an IPv6 network when we:
Specifically, we found that the app crashes after sending messages on Wi-Fi
How can I solve this?
If you app contains webservices and you have implemented NSURConnection then please convert all NSURLConnection to NSURLSession . .
My App got rejected for the same reason, but it was not the issue. The reason my app got rejected because it got crashed on login button click.
It was working when i compile and run with xcode (ie xcode 8.2.1) but apple said it was crashing.
So i tried running it in release mode because we usually run our app in debug mode when we run on xcode.
from
to
And my App crashed when i ran it on release mode and i found the bug, it happened when the compiler tried to optimise a decryption function.
I think there is some issue with the new llvm 8.0 compiler.
Now my App got even approved by AppStore.
The answer is fairly simple, you're going to have to try and reproduce the crash and fix it.
Apple won't let apps into the App Store of which it finds crashes for. I'd recommend finding a friend/family member who has an IPv6 enabled network (if you can't enable it yourself) and attempting to use your app in various conditions under that network.
The App Review network, like the networks deployed by service providers, does support IPv6-to-IPv6 connectivity. Thus, if your server supports IPv6, your app will talk to it directly, without going through the NAT64 translator.
Please check your link is support ipv6 or not use this LINK
and read more
Just add a CDN (Example: Cloudflare) to your domain, change nameservers accordingly and make sure IPv6 compatibility feature is turned ON. This worked for me

App is rejected by apple

My application is been reject by apple . They have message me that
During review, your app crashed on iPad running iOS 9.2.1 and iPhone running iOS 9.2.1 when we:
-Launch app
-Logged in
This occurred when your app was used:
- Offline
- On Wi-Fi
- On cellular network
But it is working fine on simulator and ios devices .
It dont know whats wrong with it .
Here are the crash reports
http://a697.phobos.apple.com/us/r30/Purple69/v4/f4/65/c0/f465c0c1-0261-7798-dca8-9b48c0de869a/temp..lfhkdwhz.crash?downloadKey3=1454075117_e097b43bf35613b18c897f3917dcd353
http://a401.phobos.apple.com/us/r30/Purple49/v4/cb/6c/c8/cb6cc858-d47a-aba8-0a7c-1bf304c4c56f/temp..rhzbnjqi.crash?downloadKey3=1454075117_556853386b65ca6d799acd6f6ce64fac
I dont know where are these crashes and how to resolve them ?
If you have read Apple instructions, they said its crashed on offline test. That means while there is no internet connection there is not available.
Simply follow these steps:
Check Internet Reachability at every place in the app where its used
After adding it test App on the device in which Apple testers found crash to make sure its working now.
Add appropriate alert messages for no internet connection
Note:
Thing is Simulator may not give you crash all time. Its best to test on real device before submit App for review
Hope it will help for you.

Bluetooth Transmitting Legacy Name

I am working on an mbed powered Bluetooth Low Energy project. I have been developing various GATT services, however, I have now found my project has got "stuck" on a previous service. What ever program I download onto the device, a Service is broadcast with the name "HRM_SEC". I have repeatedly changed the name from this.
I have installed known working examples of default Heart Rate Monitor Example. I have installed blank programs without bluetooth service definition etc.
However, the name of this prior service is persisting.
I have reinstalled my ios app - LightBlue - incase it was a casheing thing. By reinstalled I mean deleted and then downloaded from app store.
I can't connect to these services. New programs are being installed, as I am getting the expected serial feedback.
Why is this happening and What can I do?
I have just tried using the LightBlue app on a different iPhone and I am getting the expected behaviour. How can I purge the stored data from the LightBlue app. I have tried deleting it, then doing a reset (holing lock and home button), then when it has rebooted I re-downloaded the app from the app store. What else can I do to clear which ever info is being stored by LightBlue?
This seems to be an underlying iOS issue, as my other apps are also now using this legacy name. I have tried disabling and then enabling Bluetooth, but this hasn't worked. Any other ideas?
I have submitted an iOS bug report. This is really annoying, as I cannot use my iPhone to test an app I am working on. Any ideas for workarounds?

Resources