app rejection due to IPv6 issue - ios

I recently got an iOS app rejected due to lack of IPv6 compatibility.
After browsing the internet to investigate on the subject, I decided to view those two videos:
https://developer.apple.com/videos/play/wwdc2015/719/
https://developer.apple.com/videos/play/wwdc2016/714/
Now back to debugging the app, I am trying to follow what I can read here:
http://www.brianjcoleman.com/tutorial-how-to-test-your-app-for-ipv6-compatibility/
At one point in the document we can read:
14. Once sharing is active, you should see a green status light and a label that says Internet Sharing: On. In the Wi-Fi menu, you will also see a small, faint arrow pointing up, indicating that Internet Sharing is enabled. You now have an IPv6 NAT64 network and can connect to it from other devices in order to test your app.
This is where I hit a problem. In my case I can indeed see:
"a green status light and a label that says Internet Sharing: On"
But I do not see in the Wi-Fi menu:
"a small, faint arrow pointing up, indicating that Internet Sharing is enabled".
So my guess is that I must have either done something the wrong way or have a configuration not matching what is expected by this document.
I have also tried several choice for Share your connection from: but to no avail. In the same way, looking at my iPhone does not show any sign of new access point.
Any suggestion coming from an expert on the subject or someone with some experience would be very much appreciated.

I also recently encountered this issue when uploaded my previous apps to appstore.
The solution is used is - I recorded a video of app functioning while connected to ipv6 network i.e. connected to any mobile hotspot. You just need to record this video and upload it on internet(generally i use google drive) and make public link from it.
Then in itunes, prepare for submission link, there is a section called add notes. In this section, you need to tell apple that your app is functioning properly under ipv6 network and tell them to check you video link.
For sure, after doing these things as defined, Your app will be approved within 14 hours.
I now do these steps everytime i upload my new app.
Thanks

Related

NEHotspotConfiguration is a special Entitlement required?

I'm hoping someone can answer a few questions I have, since Apple's documentation does not provide an answer. I'm simply just wanting to connect to a Wi-Fi and disconnect from my app using these methods from the NEHotspotConfigurationManager:
-applyConfiguration:
-removeConfigurationForSSID:
-getConfiguredSSIDsWithCompletionHandler:
-fetchCurrentWithCompletionHandler:
From this documentation, nothing mentions needing a special entitlement :https://developer.apple.com/documentation/networkextension/wi-fi_configuration?language=objc
-Can someone please tell me if I need one for using just those methods above?
-What 'Capabilities' do I need to add in Xcode for those items above and to add to my profile? Right now I have 'Access Wi-Fi Information' and 'Hotspot' but I'm unsure if I need Hotspot, since I'm not creating a VPN or my own hotspot, I'm just connecting to a specific Wi-Fi from the app. Half of the comments here say conflicting thing.
This article mentions the Capability
'Network Extension' but not sure if needed? NEHotspotConfiguration is not working in ios 11
I am only using this auto-connect feature so users do not have to go to settings to connect to a specific wifi to retrieve information and then bounce to settings again to disconnect in order to submit the information if that makes sense, just a smoother process.
Thank you!
After several responses from here, completely removing all Capabilities and manually adding them back in, and updating to the latest Xcode (13.3 from 13.2) the issue seems to be resolved. Accessing Wi-Fi and Hotspot Configuration do not need a special Entitlement requested from Apple, just a generic one directly in the app. Thank you!

Errors on Apple app reviewer's device during the app review when trying to connect to Azure SQL Server Db

I tried to release the iOS app in the Apple App Store. But it failed the review.
The app connects to Azure SQL Server DB on startup. It is implemented in C# Xamarin.Forms.
Initially (build x.x.x.0), I posted the app with following errors reported by reviewer:
"Snix_Connect (provider: SNI_PN7, error: 35 - SNI_ERROR_35)"
or
"Snix_Connect (provider: SNI_PN7, error: 40 - SNI_ERROR_40)"
I search the issue and tried to reproduce it.
I concluded that this usually happened when there are some issues with the Internet connection. I was able to reproduce it in the following 2 cases:
Disconnect WiFi router from the Internet, but preserve switched on,
and the iPhone still connected to this router.
Playing with VPN on iPhone. And while VPN is in progress of connection, I also tried to log in at this moment. This is not a robust method of reproducing the issue, but sometimes I got the error message above.
After this, I published the build on TestFlight. This is to test exactly the same binary as I uploaded for review. One of the teammates tested it on his device as well, and it worked fine on both devices: mine and him.
For completeness of the information, the app also worked fine on Android devices.
To make the error message more user-friendly I did the following.
If exception contains the errors above (with SNI_PN7), I replaced it with the following before showing to the user “Wi-Fi may be switched on, but not connected to the Internet, or Internet connection misconfigured".
In the current build, I have added the button “View report details” near error message. If the user taps this button he gets a page with stack trace and button “Copy report to clipboard”.
I asked reviewed, I also attached the file with screenshots on how to tap the button, and how to scroll page with the report and copy text to the clipboard. If he gets an error then I want him to copy the error report and share it with me.
After posting this last version, the reviewer completely ignored my request to share error details, and just attached a screenshot with the error message:
“Several errors occur: * Can't connect to the database. This may occur when there are issues with an Internet connection, unstable Internet connection, misconfiguration of firewall, VPN or antivirus, or issues with DB server. Please check Internet connection and configuration, and try again. * Error on checking connection to the database * Wi-Fi may be switched on, but not connected to the Internet, or Internet connection misconfigured (Ul code: 2)”
The reviewer just responded to me:
“We discovered one or more bugs in your app when reviewed on iPad running iOS 12.4.1 on Wi-Fi.
Next Steps:
To resolve this issue, please run your app on a device to identify any issues, 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. For updates, install the new version as an update to the previous version, then follow the steps to reproduce the issue.”
Nothing useful for me.
Note, in previous builds reviewer several times repeated me, that login/password is incorrect. Then I wrote to him directly in review note:
“In case I provide you wrong login/password (/) to test application, you will get the following error message: «Login or/and password is incorrect», possibly with additional info, but the message is very clear about wrong login/password. All other error messages are not related to the wrong login/password.”
After this, I sent the appeal to the Apple:
“The reviewer does not provide enough info why he/she has issues to login to
I added functionality to build x.x.x.5 so that the reviewer can get technical info right from the app, and I asked about this info during the review. But the reviewer didn't provide any information. It looks like he/she completely ignored what I have asked about in the notes”
There is no response for appeal more than 3 working days.
Note, it was 5-th build I posted for review. Every time the reviewer responses about 1 day. He stops responding to my clarification in the resolution center. It looks like he behaves in a cat-and-mouse way, but not willing to publish the app.
I try to publish the app from September 16, I fixed, and clarify what I could suppose may be error cause on the Apple reviewer side. But no obvious progress, and I actually can't realize what I can do more...
Could somebody give me an idea about what I can do more? What can be wrong with the app? Why reviewer device could have issues to connect to Azure SQL Server?
I added details here that I consider essential. But if you need more info, let me know.
Thank you.

Adding a URL link to iOS app that is not optimized for mobile platforms (rejection possibility)

I have been doing some research about iOS app approval process, but I can't seem to find one thing that is pretty important in my case. I have added a simple url link to a website (I did not use a web view for the reason I am about to explain).
What I have found is that Apple specifies that font within the app should not be smaller than size 11. They also say that the user should not have to zoom in. Well, unfortunately I have a client who wants me to place a link of her website in a menu section of the app. I told the client that I was concerned that there may be an issue since this website is not optimized for mobile devices. Basically, this link shows a desktop version of a site on a mobile phone.
I have searched online for many guidelines, but I just haven't spotted anything yet. I would guess that they would reject it, but I was just curious if anyone happened to know for sure or knew where I should look to find this out.
Thanks

No alert displayed when UIRequiresPersistentWiFi is included

I am currently using Xcode 8.2 and have included the key: UIRequiresPersistentWiFi in my info.plist file.
According to others, when the user is not connected to WiFi, the user should be prompted with an alert to turn WiFi on. However, this alert is not showing up when this key is included. I don't know if the key has been deprecated in later versions of Xcode. I would appreciate it if someone could explain why the message is not showing, and also help in finding a way to display the message.
In Apple's documentation it says this for the UIRequiresPersistentWiFi key:
The inclusion of this key lets the system know that it should display the network selection dialog if it detects any active Wi-Fi hot spots. It also lets the system know that it should not attempt to shut down the Wi-Fi hardware while your app is running.

Listing all available WiFi access points in iOS

I am trying to build an iOS application where I'll show the user a list of available WiFi Access Points to the user. First of all, I know that trying to do this will get my Application auto-denied in the App Store and that's okay, I'm only doing this for research purposes.
While I was researching, I found this GitHub library but it only works for 4.x and 5.x. This topic was also discussed in this question on how to use the iphone-wireless library but the top answer's link is down. Another answer linked this GitHub repo with a sample project but it seems that it only scans for other devices connected to where your device is currently connected.
I also found iPhone-Wireless' Google Code page but there's no guide whatsoever on how to use it.
Has anyone done this before? Listing all the available WiFi Access Points? I am okay with using libraries that will make the App Store reject my application as I have to plans of distributing it.

Resources