Mobile data still being used despite restricting access to Mobile data in Settings - ios

I'm developing an app for a client and am experiencing an issue where the app is still using mobile data on my device, even though I have mobile data turned OFF for the mobile app, and wi-fi is switched OFF also.
The app is a video-calling app, using WebRTC, Sockets (socket.io) and usual API calls. All of these are still being used and successfully returning data, meaning a fully-fledged video call is working, despite the wi-fi being disabled and mobile data being restricted too.
I'd obviously like to resolve this situation, as I fear the app could be rejected by Apple upon submission.
The same experience occurs regardless of whether the device is connected to USB or not.
Only Airplane mode seems to provide the correct 'no connectivity' experience.

Related

iOS app cannot connect to server over LTE network on iOS 14.7.1

Since last week one user of an app of mine is reporting that the app cannot reach the server on a cellular network. His phone is running iOS 14.7.1 and he has an LTE network connection. The app works perfectly on wifi and I have not had any reports of other users not being able to use the app on cellular networks.
First I thought it was a network detection issue (reachability not being able to see the cellular network), but when I ignore the network detection and simply make the HTTPS request, it does not connect. There is no response from the server. The weird thing is that this is an app with a Google map. The map loads, but the location markers that come from my server are not loaded.
I cannot think of any reason why this is happening and as my testing options are very limited (only this one user is reporting it, I cannot replicate myself), I am kind of lost as to what causes the issue, let alone how to fix it. Are there any settings that I should be aware of for connections over LTE networks to work? Have any new settings been introduced in iOS 14.7 that might affect this? Should the user make any changes on his phone to allow my app to use the cellular network?
I am using a very standard URLSession datatask with an URLRequest to make the call (which works without any issue over wifi).

How does TeenSafe iOS App Access Text Messages?

Today I saw a news feature on the TeenSafe app. They showed features such as locking out an iPhone and eavesdropping on the text messages sent by a phone. I understand how this might be possible on Android but how can this be done on a non-jailbreaked iPhone?
This is interesting, but it sounds kind of scary though knowing someone else is tracking your every move. Anyway, I read their website and I saw this:
How does TeenSafe work
TeenSafe Control uses Mobile Device Management (MDM) Protocol, similar to the way corporations secure devices used on their networks in order to protect their network from Internet threats. An MDM certificate is installed on your teen’s iPhone and paired with the TeenSafe Control App on your iPhone, giving you the power to control it remotely. TeenSafe Control’s proprietary method of incorporating MDM makes it difficult for your teenager to disable or remove it. In cases where they find a way, we will alert you via email.
You can look up on Mobile Device Management to find out more.
Ok, I found out here:
http://www.bewebsmart.com/parental-controls/monitor-imessage-with-teensafe/
Basically, you need your teen's iCloud username and password and iCloud backup has to be enabled for the device. So no special magic here and it's not perfect.

Publish IOS App to Appstore with SSID ( wifi) discovery/connect through app

I was trying to get a specific info before a IOS App development task which I searched but couldn't find anything relevant.
Wanted to know whether this requirement restricts (non compliance issue as per publish guidelines) the app to be published in App Store with features as below
User scans and lists all available wifi connections in a tableview
Selects one of the Wifi connection and connects on button click
Stores the password and SSID for future connections.
Would there be any compliance issue related to the same functionalities when submitting to IOS app store. One of my colleague have advised me about the same but not able to explain why? Which I tried to find out searching the internet, but too specific to find anything relevant. Deeply appreciate an Expert advise on this.
Thanks in advance.
I can't find anything in the Review Guidelines that would object your app idea: https://developer.apple.com/app-store/review/guidelines
A couple of areas where you should have a more detailed look:
2.5.1 Apps may only use public APIs.
2.5.9 Apps that alter the functions of standard switches, such as the Volume Up/Down and Ring/Silent switches, or other native user
interface elements or behaviors will be rejected.
5.1 Privacy
Technically, I'm not sure if it's even possible to change the WIFI not via the settings app, so I'd have a look their first. (https://apple.stackexchange.com/questions/1592/is-there-an-ipod-app-to-easily-switch-wifi-on-and-off)
I don't believe I've ever seen an app or a way to change SSID outside the Settings app. I explored a way to detect network changes, connects, disconnects, which work fine while the app is running. I was never able to influence how the user connected, just that a change happened. It also falls apart pretty quickly when the user backgrounds the app. Trying to keep a background task open long enough to poll the current connection fails pretty fast.
I wish Apple would provide some system level notification of Wifi connect events. This could be very useful to developers that want a little more control than Background App Refresh events.

can ios safari access bluetooth device?

I'm working on a location related project. I found that iOS has iBeacon which can help the app to get the location data. I want to know if iOS Safari does have the access to it? Or any other similar bluetooth device which can be accessed?
Not yet. There is a proposal in W3C for a "web-bluetooth" specification which has been partly implemented in the chrome , opera and chrome-for-android browsers, although they need to be activated by the users in a somewhat convoluted manner. Like all these things, it'll take time for the committees to spin their wheels and for the browser makers to decide if they want to support it , and then implement it.
MDN docs: https://developer.mozilla.org/en-US/docs/Web/API/Web_Bluetooth_API
Apple don't have this built in to Safari (yet), however there is a Web Browser app called WebBLE that implements 'Web Bluetooth' mentioned by Shayne.
Currently the app only supports a subset of the standard, but it's more than enough for most tasks. It's also Open Source so you could add it to a WebView in your own app if needed.
Having said all that, currently I don't believe Web Bluetooth supports accessing Advertising data - so while you can connect to Bluetooth LE devices and interact with them, you may not be able to get the actual Advertisements (which is kind of the point of iBeacon).

Is it possible to get a unique identifier for an ios device from a browser, in a controlled environment?

This is (a very simplified version of) the scenario with which I am faced:
I have an existing web application which manages jobs. We are now purchasing a number of ios devices (iphones and ipads) and I need the web application to know which specific device (regardless of the user) is updating information through the web application (as well as getting the GPS co-ordinates, but I think I have that covered with the geolocation API).
I have control of all the devices, they will all come to me before being distributed and will return to me periodically, so I can modify/restrict etc., but I can't jailbreak.
I have no experience of ios, but if there is a way to do this without needing an app, that would be the best choice.
You can use HTML5 storage to create and save a GUID the first time user accesses your website and send it with subsequent requests.

Resources