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…

Enhanced developer workflows in AIR 3.3!

It took some doing but it’s finally out! AIR 3.3 packs in a lot of features, and by lot I mean a LOT. Especially for iOS developers. We have been focused improving the development experience for iOS for quite some time now and it shows. Let’s see what’s new in AIR 3.3 for iOS.
Continue reading…

China Game Developer’s Conference

Ni Hao China!

Ni Hao China!

Continue reading…

Obtaining Trace output logs on device for AIR on iOS

The mm.cfg text file can be used to obtain logs of trace() output in Adobe AIR applications on iOS.
Here are the steps you will have to follow to add the mm.cfg file to your IPA: 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, the dSYM resource will be named This can be used for analyzing crash logs in the same way as for any native iOS application. Continue reading…

iOS5 support for AIR/Using external SDKs to package apps

AIR 3.1 introduces significant improvements to the way native extensions can be used on iOS. Firstly, it lets you package your apps with an external SDK so that you are not restricted to using the captive SDK. If you have built an extension with the latest iOS SDK to access the latest features you can now specify that SDK when packaging the app. You can specify an iOS sdk to link with using the -platformsdk switch when packaging an IPA. Simply add -plaformsdk /path/to/iPhoneOS5.0.sdk to your regular commandline for packaging the ipa. Continue reading…

Slides from AFPS, 2011

Slides from a presentation I gave on Native Extensions in Adobe Flash Platform Summit 2011, Bangalore. I gave the presentation before native extensions was actually released but the content is sufficiently high-level to be correct even now.  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…

Hello world!

            import mx.controls.Alert;
            <!-- My first post here. -->
            public function welcomeHandler(evt:Event):void {
      "Hello World!", "Greeting");