Posts tagged "ios"

Using ARC in native extensions

Automatic Reference Counting (ARC) is a compiler-level feature. If you enable ARC in your code, the compiler will insert appropriate method calls to garbage collect your objects at the end of their lifetimes. If you are targeting iOS versions 5 and above it is enough to simply enable ARC in your Xcode project. The rest of the development workflow remains the same. The problem comes when you want to use ARC but want your application to run on iOS 4.x. This feature is not fully backward compatible with older versions of iOS. iOS 4.3 or earlier do not support the full range of capabilities ARC offers. To use ARC but at the same time target iOS 4.x, you would have to do a few more things. Continue reading…

Debugging Native Extensions for AIR iOS

In this post I am going to talk about debugging native iOS extensions for AIR. While fdb is sufficient for debugging the ActionScript part of an extension we have to rely on native tools to debug the native code. For iOS this means that the extension can be debugged only on Mac using the XCode toolset.

ADT generates a dSYM resource along with the final IPA when the IPA contains a native extension. The dSYM resource is created in the same directory as the IPA and follows the usual naming convention of having a “.dSYM” appended to the application bundle name. So if the application name is MyApp.app, the dSYM resource will be named MyApp.app.dSYM. This can be used for analyzing crash logs in the same way as for any native iOS application. Continue reading…

Adding iOS entitlements to AIR apps

Entitlements allow applications to access special resources and capabilities on iOS. A typical AIR application needs only the application-identifier and get-task-allow entitlements keys. The packager configures the entitlements file and the application developer does not need to bother about entitlements at all. However, with the advent of native extensions, developers wanting to access  resources beyond what the runtime provides might need to set up proper entitlements for them. Continue reading…