AIR and Flash Player Beta 25


Last Updated: February 3, 2017

code named Webster

here the release notes

New and updated features

  • more Apple TV support
    introduced as “Beta channel only” since AIR 24, more stuff in AIR 25
    see: air25_appletv_releasenotes.pdf
  • iOS SDK Upgrade
    to build with iOS 10 SDK
  • Option to fallback to older Video pipeline for Android
    you can now disable the new media codec and render like it was AIR 21
  • AS3 API to get Compilation Information for iOS
    eg. NativeApplication.isCompiledAOT
  • Local Storage Support in StageWebView for Android
  • Adding support for new languages in AIR Mobile
    3 new locales: Danish (da), Norwegian (nb) and Hebrew (iw)
  • Multidex support for Android
    to package app which exceeds the 64K references limit
  • Offset support for drawToBitmapData()
    basically allows you to not use the whole buffer but a smaller area
  • Instanced Drawing on AIR Desktop
    coming from mobile to desktop too

You will also be happy to know that some issues have been fixed

  • Unable to install the application on iOS Simulator
  • OpenSSL library upgraded to 1.0.2j for Android
  • and many other …

kudos to the Adobe team to deliver yet another beta :slight_smile:


updated February 15, 2017


updated February 22, 2017

Support for embed bitcode in iOS/tvOS

Starting AIR 25, ADT supports a new option -embedBitcode to add bitcode in your iOS and tvOS applications. For more information about
Bitcode, see the App Distribution Guide.

Switch details:
Name of the switch: -embedBitcode
Values(iOS): yes or no. Defaults to no
Values(tvOS):yes or no. Defaults to no(yes for ipa-app-store target as it
is a mandatory requirement by Apple)
Usage: -embedBitcode yes
Order: Just before the code signing options
Example ADT packaging command:
<AIRSDK>/bin/adt -package -target <target type> <other options>
-embedBitcode yes -provisioning-profile
<SampleProvisioning.mobileprovision> -storetype pkcs12 -keystore
<SampleCertificate.p12> -storepass <password> Example.ipa Example-app.xml
  • Embedding bitcode enables AIR developers to upload their tvOS applications on the AppStore where bitcode is required.
  • Embedding bitcode in your application increases both application size and packaging time.
  • Embedding bitcode requires that all your ANEs also include bitcode. If not present, adt can throw packaging errors such as the following:
ld: bitcode bundle could not be generated because


was built without full bitcode.
All object files and libraries for bitcode must be generated from Xcode Archive
or Install build for architecture arm64

Compilation failed while executing : ld64

that’s very very very nice, people will mostly see one compiler switch added, but I can imagine the headache it was to implement that, kudos to the Adobe team working on AIR :slight_smile:


Should be byte code?

Nevermind. It looks like bitcode is an intermediate representation to make the app size smaller after Apple receives it on their app store and allows them to optimize your app in the future. More info on link:

Update 2:
Apple calls it bitcode but it is actually bytecode. :confused:

From Apple:

Bitcode is an intermediate representation of a
compiled program. Apps you upload to iTunes Connect that contain bitcode
will be compiled and linked on the store. Including bitcode will allow
Apple to re-optimize your app binary in the future without the need to
submit a new version of your app to the store.

Note: For iOS apps, bitcode is the default, but
optional. For watchOS and tvOS apps, bitcode is required. If you provide
bitcode, all apps and frameworks in the app bundle (all targets in the
project) need to include bitcode.


well … not so fast

1 byte = 8x bits

there is no problems to call it either bytecode or bitcode, in general people will use “byte” because historically you used 8 bits to encode a single character of text in a computer, but both terms are valid.

Still there are differences, in a VM (Virtual Machine to execute code), you will use bytecode if your instructions are stack-oriented, whereas in a VM with bitcode is not. Which means instead of loading values into registers, a VM using bytecode loads values onto a stack and computes values form there.

So why Apple use the term bitcode then?
it’s because they use LLVM (Apple is a big contributor to LLVM) and LLVM bitcode is closer to machine-level code and isn’t bound to a particular architecture which allow LLVM to use an arbitrary number of logical registers.

Other VM, like JVM (Java Virtual Machine) and AVM2 (ActionScript Virtual Machine 2) on the other end use bytecode because they use a stack-based approach, they POP and PUSH data to/from the stack.

See Stack based vs Register based Virtual Machine Architecture, and the Dalvik VM.


updated March 7, 2017


even if Flash hand AIR 25 have been released the beta received a couple of updates recently

Flash Player 25 beta updated March 31, 2017
Adobe AIR 25 beta updated March 29, 2017

no new features but fixed bugs

Flash Player

  • [Windows]Flash player unresponsive after connecting with the socket.(FP-4198296).


  • [iOS] StageText: setting stage property after calling selectRange() incorrectly gives focus to StageText (AIR-4198296)
  • [iOS] An application with StageText quits unexpectedly on iOS device after calling selectRange method (AIR-4198294)
  • [iOS] Application crashes on using a feather textInput
  • SecureSocket does not work on Windows (AIR-4198301)

also quick note to say that the new issue tracker is there

and here the link of the fixed issues mentioned above

and remember folks it’s not that Adobe don’t care
is that you need to provide a good description of the bug for it to have a chance to get fixed
and sometimes you need to provide that code sample to illustrate it too


update April 6, 2017

Fixed issue

Flash Player

  • Previous slide’s video’s audio keeps playing even when next slide is loaded.


Flash player been updated again April 12, 2017

but “known issues” and “fixed issues” are empty
so no idea what have changed