Geolocation issues with AIR on iOS (with a fix!)
September 21, 2012
Posted by on
The recent “GM” version of iOS 6 (this includes the production version that is now shipping on the iPhone 5) broke one of the APIs that Adobe AIR depends on for Geolocation.
If you have an app that was published with Adobe AIR 2.7 through AIR 3.4, your app will either get rejected if you are just submitting it to the store, or it may be broken if it is already in the store. This is in addition to some other feature interaction issues that have also cropped up in iOS 6.
The bug is that the Geo Location (GPS) subsystem is never actually called — it fails silently, just as if the user denied the application to use the GPS.
Luckily, there is a work-around, but it does require a re-compile of your application.
- Make sure your app is running at least AIR 3.0. AIR 3.4 is currently in production and it works great with this work-around. AIR 3.5 is on the roadmap, and addresses some other iOS 6 issues (including the ability to address the full screen).
- Update the <name> tag within your descriptor XML document. Wrap the actual name of your application in an extra <text: xml:lang=”en”> tag. For example,
- Update the version number.
- Make sure your app is compatible with the new storage requirements in 2.23. Details are available here : http://blogs.adobe.com/airodynamics/2012/03/05/app-compliance-with-apple-data-storage-guidelines/
- Compile, and wait. Your app’s GPS should now work in iOS 3, 4 and 5.
Hope that helps some people out! I know it was a big sticking point when I had some apps recently rejected because of this incompatibility.