Quick Tip: AIR 2.5 & Security.loadPolicyFile()

After switching my AIR application into new AIR 2.5 SDK, boom! Every single URLRequest threw an IOErrorEvent. No other exception thrown. So I started digging in in order to find the cause and it appeared to be Security.loadPolicyFile() execution (I am reusing some libs containing these lines) that blocked it all quietly. First I tried to do try-catch block over it, but with no success. Than I just removed the lines for AIR project and voilà, everything back to normal again. URLRequests works again. It seems like AIR does not need loadPolicyFile() for URLRequests at all. Interesting that these loadPolicyFile() were targeting total different domain and were able to break any other requests.

Debug & Deploy Flash on Android

It is now a few weeks after I started experimenting with AIR for Android. While watching all the great tutorials about how to make things work (AIR for Android – Part 1, Part 2) and how to debug application running on device (Debug AIR apps on Android with Flash Builder 4, another in french and Flash), I have decided to attach some of my own findings and practices to build, deploy and debug apps.

To start, it is a good practice to setup your environment variable path to Android sdk and AIR sdk:

PATH: ...;C:/Users/Yoz/Work/Android/SDK/2.2;C:\Program Files\Adobe\Adobe Flash Builder 4\sdks\4.1.0.16076-AIR2.5\bin

Next, the whole certificate thing does not make sense to me because you can/have to create one by yourself. The cert need to be valid for 25 years else Android Market will not accept your application (bye bye real signed certificate from PGP TrustCenter 🙁 )

Read the rest of this entry »

Authorizing Facebook Applications in Android

Hold on, this is going to be fast and smooth! I am playing with an Android Emluator for a few days now. One of the challenges was to mount FacebookOAuthGraph lib into Android. It turned out to be 1 hour task. Thanks to Flash-Core article and sHTiF and StageWebView. Long live AIR for Android! 🙂 Follow the article for codes:

Read the rest of this entry »

Quick Tip: AIR Application Without Flex Framework

This may be pretty known thing, but I would like to share it. When creating a new AIR project in flash builder (File / New / Flex Project / … Desktop – AIR), and you do not require flex framework, just rename the “Main application file” to whatever.as (instead of whatever.mxml) in the last step of creation wizard (screenshot attached). Or, if your project already exists with main app.mxml file, just create new file with the same name app.as and remove the old one (app.mxml). Make sure your main application class extends Sprite.

Adobe Melrose – The Place To Sell Your Apps

This post is about Adobe Melrose – the new Lab project from Adobe, and my first contact with it. I hope to be able to continuously update this article so you can get perfect view of what is going on when you decide to use Melrose. Lets begin with public static const MELROSE: 🙂

Melrose (codename) enables developers and publishers to distribute and make money with Adobe® AIR® applications through application stores. Melrose provides a repository that distributes applications to multiple application stores so that publishers can reach millions of users. Intel AppUp Center and the Adobe AIR Marketplace are the first two storefronts available in Melrose. Melrose also provides analytics that let publishers measure success of their applications.

Read the rest of this entry »

Quick Tip: What is MY_UNIQUE_32_HEX_NUM?

When working with Adobe Merlose licensing code I hit MY_UNIQUE_32_HEX_NUM variable containing some generated string (XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX). As there was nothing within my emails from melrose that would correspond to that string, investigation got started. Soon after I found Merlose FAQ saying that MY_UNIQUE_32_HEX_NUM is a GUID that you choose and is immutable for the lifetime of the application, followed by Q&A combo:

Q: Do I need to randomly generate the application UID that is passed to the* checkLicense() *call or will Adobe give one to me?
A: You need to generate the UID. We recommend you use a GUID generator tool like: http://www.guidgenerator.com/online-guid-generator.aspx. Generate your own unique number and plug it into your code…

Mistery solved!

Authorizing Facebook Applications in AIR

I was asked to make AIR compatibile version of FacebookOAuthGraph class. It was a nice little challenge for me, where I learn some new things about AIR. E.g. how easy it is to define the JavaScript callback directly from ActionScipt (HTMLLoader.window.methodName)… There are more ways to make authorization process work for you, I have chosen the one with popup window. In order to make FacebookOAuthGraph work for AIR, the short extending is required, instead of creating popup window from JavaScript, popup is created by HTMLLoader.createRootWindow (no ExternalInterface required)…

Read the rest of this entry »

Publish Your AIR Applications To Facebook

Hi folks! Today, while mounting some of my projects into AIR, I realized that it would be great if I could pusblish AIR badges over Facebook. You know what? That is possible! I have created a simple flex application + facebook application that, based on parameters, generates AIR badge for an app. Now its time to share the stuff with you, feel free to publish your AIR badges, and let me know how do you like it.

Read the rest of this entry »

Quick Tip: Checking The Version Of An Installed AIR Application

Here is a quick tip how to check the version of your installed AIR application from an application running in flash player. In order to make your AIR application (system) be able to respond to the requests for installed version correctly you need to define allowBrowserInvocation within your AIR descriptor file (app.xml). If you don’t do this, you won’t be able to query version information on your application:

<allowBrowserInvocation>true</allowBrowserInvocation>

Now your AIR application will respond correctly with its installed version. With this setting on, the installed AIR application can be launched via the browser invocation feature (by the user clicking a link in a page in a web browser). Be sure to consider security implications.

Now, to get version info from any application running in flash player (or AIR) you simply call getApplicationVersion() method on air.swf file located on adobe domain.

Read the rest of this entry »