Project: titanium
Issue TIMOB-18401: Module using Google Maps SDK works fine when run with 3.4.1.GA crashes with 3.5.0.GA
two years ago I developed an iOS module that wrapped around Google Maps for iOS SDK to return support for Google maps on Titanium projects. {quote} https://marketplace.appcelerator.com/apps/5076?restoreSearch=true#!overview {quote} this worked fine and with every major Titanium SDK release I rebuilt, tested and it always worked fine. I used to run it using .../3.5.0.GA/titanium.py run but that doesn't work anymore, instead I run {quote} python build.py {quote} which works although it will not run in simulator which adds up to development time. the thing is that when I tried {quote} xcrun lipo -info build/...... .a {quote} I only got i386 so I had to recreate a new module using the new titanium CLI, change the GUID and add my objective c classes and Google framework setup guide to it. then after building again I managed to get it to support all architectures, so you may want to update the docs for veteran module developers. now for the main issue: I use the module in a 10 lines demo app which just opens a window and adds an instance of Google maps, I build it with 3.4.1.GA SDK and it runs fine in the simulator. I also used the latest 1.9.1 version of Google's framework I then simply changed the tiapp.xml to use 3.5.0.GA instead, the simulator opened, I see my debug printouts and then the app crashes, according to xcode it crashes due to a memory release that was not allocated. {quote} malloc: *** error for object 0xffcb5f0: pointer being freed was not allocated *** *** set a breakpoint in malloc_error_break to debug {quote} I tried to set the above breakpoint, I tried to see the xcode stack when it crashes but it is of no use, it crashes somewhere in the tile drawing of the Google Maps framework but it will not do so if run through SDK 3.4.1.GA... Fact is, that from all the components used here the only variable that changed is the Titanium SDK version. so my guess is something in the list of changes of the new SDK broke something and some of the older apps won't work anymore. This module is used by many Titanium developers and is bundled with their published apps. to sum up: 1. module + SDK 3.4.1.GA + Google SDK 1.9.1 = works 2. module + SDK 3.5.0.GA + Google SDK 1.9.1 = crash 3. xCode project + Google SDK 1.9.1 + sample app = works 4. older module build compiled months ago + SDK 3.5.0.GA = crash attached is a sample project. it has a module folder with three versions, the 1.9.3 was built with 3.5.0.GA and supports 64-bit, the rest are older 32-bit only created with older SDKs (3.4.0 and earlier) you will need to get the Google SDK {quote} https://developers.google.com/maps/documentation/ios/ {quote} you will also need to tell the module where to find the google framework in the module.xcconfig file per the module docs if you need a license key for it drop me an email : canufind1 at gmail
Story points: 13