iOS CLLocation difference between device models - ios

I'm using the Google Maps API for iOS to essentially highlight a width of coverage using the GMSPolygon.
Running the iOS simulator I get an odd behavior. Using both a iOS 9.3 build for all the testing, the map properly highlights coverage using the location simulated by the simulator on an iPhone 5S, 6, and newer.
You can see this in this screen capture that I did: 5S Highlighting
Now when using the iPhone 4S and 5 it does not draw the GMSPolygons! iPhone 5 Not Highlighting
A few things to note, I made sure that location permission were authorized on all testing and the same "city Run" simulation was used on all the testing. Again the highlighting works fine on 5S and newer devices running 9.3, but not on 4S & 5 using 9.3. Is there a fundamental API change in the CLLocationManager between the builds for these devices?

As discussed in Simulator User Guide, there are some hardware and API differences in Simulator which may affect your app when testing in Simulator.
In addition to that, please note of these hardware features that are not simulated as of iOS 8.2:
Motion support (accelerometer and gyroscope) are unsupported.
Audio and video input (camera and microphone) are unsupported.
Proximity sensor
Barometer
Ambient light sensor
Aside from those, there are also API differences wherein Simulator APIs don’t have all the features that are available on a device such as these:
Receiving and sending Apple push notifications
Privacy alerts for access to Photos, Contacts, Calendar, and Reminders
The UIBackgroundModes key
Handoff support
Please try going through the Simulator User Guide for more information.

Related

Is offline dictation officially supported by Apple?

I cannot seem to find any official documentation on this. This is what I have found so far using not-so-reliable means:
Voice to text used to require an internet connection prior to iOS 9
In iOS 9, Apple experimented with offline dictation for certain
devices
In a later revision of iOS 9, Apple removed offline dictation.
Apple re-introduced Offline Dictation in iOS 10. I have checked this on about a dozen iOS 10 devices. The ones with A9 processor show this option and the ones without don't.
But I would like to get some official documentation on this before telling our clients that iOS now supports offline voice to text.
According to https://support.apple.com/en-us/HT208343
On iPhone 6s or later, iPhone SE, and iPad Pro, you can dictate
without being connected to the Internet. Earlier models of iPhone and
iPad require an Internet connection.
So you are correct that devices with A9+ processor can use dictation offline

iOS iBeacons Not Working on Few Devices

I have been trying to run iBeacon Receiver sample. The code is supposed to detect the devices entry into a region and exit out of region. The iBeacon region is created by a transmitter that is running on another iOS device.
The receiver code works perfectly in one of the devices I have (iOS 7.0.1). It is detecting the entry and exit out of the region. But the same code does not work on couple of other devices with iOS 7.1 [iPad Air] and iOS 8.0 [iPad Mini].
I believe these hardwares support Bluetooth LE.
Will I be missing some configuration on the devices? I am not able to track it down. Could you please suggest?
AFA iOS 8, when you do request permissions, be sure to add the new info.plist entries describing why your app is requesting the specific permission type(s) else it will continue to fail (frustratingly) silently.
See http://nevan.net/2014/09/core-location-manager-changes-in-ios-8/ (which is linked to via SO: iOS: App is not asking user's permission while installing the app. getting kCLAuthorizationStatusNotDetermined every time - Objective-c & Swift ) for more info.
One symptom I've seen to indicate you're in the "don't have the plist entries" state is that when looking at Location Services permissions in Settings, you can manually set the permission to "Always" but when you run the app, the selection clears (that is, you have no selection as to permission for that app for Location Services).
Beacon apps that work on iOS 7 silently fail to detect beacons when built for iOS 8, if they have not requested location permissions. See here for details:
In iOS 8 Beacon not detecting
This would not explain why the code you mention does not work on iOS 7.1, so perhaps that device has a hardware issue (Bluetooth off or Bluetooth LE unsupported.) The first iOS device to support Bluetooth LE is the iPhone 4S so 4 and earlier devices cannot detect beacons.

iOS 7.1 update breaks External Accesory inputStream UART read ability

We have MFI approved accessory device. Our protocol assumes continuous readings from accessory in UART mode. It was working perfect before iOS 7.1, but after testing on the iOS 7.1 it is not working properly.
In ATS test suite log we can see success eap records and some AccessoryDataTransfer acked by iPhone.
We can reproduce problem using EADemo. EADSessionController stops read data after some show/close cycles.
Only killing EADemo and relaunch allows us read some data.
Configuration:
iPhone 4 and newer (iOS 7.0), any iPod (iOS 6.x) - OK
iPhone 4s, iPhone 5 (iOS7.1) - Failed
What happens with EA framework in iOS 7.1?
Apple just released update 7.1.2 claiming they solved the issue.
"• Fixes a bug with data transfer for some 3rd party accessories, including bar code scanners"*

Bluetooth Low Energy app failed to write characteristics on iOS 7

I have a Bluetooth Low Energy (BLE) app that communicates with a BLE device through open connection. I am using CoreBluetooth library. After I upgraded my iPhone to iOS 7 and XCode to XCode 5. I recompiled my Bluetooth Low Energy app and found it no longer working. The connection is successful. The services and characteristics are discovered with no problems. Even the reading of the characteristics seems fine. But writing to a characteristic which should trigger some action on the BLE device has not any effect.
If I use XCode to download the same app to another iPhone with iOS 6, everything works fine. So I can determine the problem may be something with iOS 7 instead of XCode 5’s recompiling. It’s also possible XCode 5 prepares a different app for iOS 6 device even from a same project because I can see the app’s appearances are different on two devices.
So what’s changed from iOS 6 to iOS 7 that makes writing to characteristics failed?
I ran into the same problem, the issue is with the the firmware not your iOS Code. iOS6 was more relaxed with the characteristics types, but iOS7 is more stringent.
The WriteWithoutResponse flag for the Characteristic has to set explicitly to work with iOS7
I had used RedBear's Biscuit for Arduino at my startup to test our product, which worked wonderfully with iOS6 but when the app migrated to iOS7, the writes would fail quietly.
More detailed discussion is here (see update from Mattj949) # https://redbearlab.zendesk.com/entries/25031402-BLE-Mini-and-iOS-7
There are some Apple Threads on this issue, http://lists.apple.com/archives/bluetooth-dev/2013/Aug/msg00046.html and http://lists.apple.com/archives/bluetooth-dev/2013/Aug/msg00050.html

On which iOS devices exactly is region monitoring supported?

From what I can interpret from the runtime requirements of sample region monitoring code of Apple, region monitoring is available on iPhone 4, iPad 2 Wifi + 3G or later. So I'm assuming that it's not available on iPad1 with 3G, or iPhone 3G/3GS.
Is this a correct interpretation? I cannot test this since I don't have all those devices and I couldn't find an official documentation about this.
PS: I know that I can check for it in the code by calling regionMonitoringAvailable method but I need this information to decide for the architecture of my app, so I need to know this upfront.
From what I have learned from working on region monitoring enabled devices is that you are correct.
Currently, region monitoring is only supported on the following devices (running iOS 5.x).
iPhone 4
iPhone 4S
iPhone 5
iPad 2, 3, and 4 (new iPad) 3G/4G
iPad 3 and 4 (new iPad) Wifi
(would love some feedback for region monitoring on iPod Touch models)
I was told at WWDC that with the advent of the location tiles in iOS 6, that region monitoring would be coming to ALL iOS 6 devices. However, my testing so far has only garnered me the Wifi enabled iPad 3. I haven't been able to test on the iPhone 3GS yet, but I'm not holding my breath. It may be possible that they will enable this in a later beta or at launch, but I'm not optimistic.
Hope this information helps.

Resources