In recent versions of AIR (AIR version 3.x), this has changed a bit. Instead of appXml.ns :: version, you should use appXml.ns :: versionNumber instead.
: appXml.ns:: versionNumber - XMLList, XML, String :
var appXml:XML = NativeApplication.nativeApplication.applicationDescriptor;
var ns:Namespace = appXml.namespace();
var appVersion:String = appXml.ns::versionNumber[0].toString();
trace("appVersion", appVersion);
, 17 2017 .: - AIR applicationDescriptor. AIR 23:
var appXml:XML = NativeApplication.nativeApplication.applicationDescriptor;
var ns:String = appXml.namespace().toString();
var nsArray:Array = ns.split("/");
var appVersion:Number = nsArray[nsArray.length - 1];
trace("appVersion:", appVersion);