| The Apache Flex SDK | |
| =================== | |
| The Apache Flex SDK is the evolution of the popular Adobe Flex SDK. The Apache | |
| Flex SDK is an application development framework for easily building Flash-based | |
| applications for mobile devices, web browsers, and desktop platforms. | |
| Currently supported platforms include: | |
| Microsoft Windows | |
| Mac OS X | |
| Apple iOS | |
| Google Android | |
| RIM BlackBerry | |
| (Linux) | |
| Linux support is currently experimental and you may run into issues. The Apache | |
| Flex project would like to see a fully supported Linux release, but we need | |
| help from the community in order to do that. Please help out if you can. | |
| For more information about the Apache Flex project, please visit: | |
| http://flex.apache.org/ | |
| The Apache Flex SDK 4.16 is a follow up release to version 4.15. It is | |
| compatible with most code written for the original Adobe Flex 4.6 SDK. | |
| Installing the Apache Flex SDK | |
| ============================== | |
| The Apache Flex SDK Installer is an AIR application that simplifies the | |
| download and installation of the Apache Flex SDK and its (required) components. | |
| It is aimed at anyone who wants to use the latest release of the Apache Flex | |
| SDK, but who might not necessarily be familiar with the tools and procedures | |
| required to compile the Apache Flex SDK from source code. The application will | |
| grab the binary distribution of the SDK from apache.org or one of its mirrors, | |
| install it onto your computer and prepare it for use with your favourite IDE | |
| such as Adobe Flash Builder or JetBrains IntelliJ IDEA. | |
| You can get the Apache Flex SDK Installer from the Apache Flex website at: | |
| http://flex.apache.org/installer.html | |
| Starting with the Apache Flex SDK 4.12, Linux users can install the binary | |
| distribution using ANT. More information about installing the binary package | |
| with ANT can be found on our wiki at: | |
| https://cwiki.apache.org/confluence/display/FLEX/Installation+help#Installationhelp-Antinstaller | |
| Building the Apache Flex SDK from source | |
| ======================================== | |
| The Apache Flex SDK is a large project. It requires build tools which must be | |
| installed on your system and it depends on some external software. The external | |
| software is downloaded as part of the build process. | |
| There are two ways to get the SDK source. | |
| 1) from a git repository | |
| 2) from a source package distribution | |
| The following steps are all you need for a fully functional SDK: | |
| - Prepare your system | |
| - install external software | |
| - set environment variables | |
| - Get the source code | |
| - Build the SDK | |
| - Prepare the SDK for use with an IDE | |
| - Optional steps: | |
| - Flash Player configuration | |
| - Other locale support | |
| Prepare your system | |
| ------------------- | |
| Before building the Apache Flex SDK you must install the following software and | |
| set the corresponding environment variables. Make sure to use absolute paths, | |
| as relative paths will result in build errors. | |
| The environment variables PLAYERGLOBAL_HOME, AIR_HOME, FLASHPLAYER_DEBUGGER, | |
| TLF_HOME, BLAZEDS_HOME and ADOBE_EXTENSION_MANAGER can also be set in a | |
| property file called env.properties. See the env-template.properties file | |
| for instructions. | |
| The Adobe Flash Player and Adobe AIR have non Apache compatible licenses so | |
| they can not be bundled with the Apache Flex SDK and need to be installed | |
| separately. | |
| The Adobe Flash Player ‘playerglobal.swc’ is needed to compile all the | |
| components with the exception of the ‘airframework’ and ‘airspark’ | |
| components, which require ‘airglobal.swc’ from the AIR Integration Kit. The | |
| AIR Integration kit is also needed to build and debug mobile and desktop | |
| applications. The Adobe Flash Player content debugger is used by the ant | |
| ‘checkintests’ target and other pieces of the test subsystem to run compiled | |
| applications. | |
| --------------------------------------------------------------------- | |
| SOFTWARE ENVIRONMENT VARIABLE | |
| --------------------------------------------------------------------- | |
| Java SDK 1.8 or greater (* 1) JAVA_HOME | |
| Ant 1.8 or greater (* 1) ANT_HOME | |
| Adobe AIR Integration Kit (* 2) AIR_HOME | |
| Adobe Flash Player Content Debugger (* 3) FLASHPLAYER_DEBUGGER | |
| Adobe Flash Player playerglobal swcs (* 4) PLAYERGLOBAL_HOME | |
| Optional: Text Layout Framework (* 5) TLF_HOME | |
| Optional: Adobe Extension Manager CS5 (* 6) ADOBE_EXTENSION_MANAGER | |
| Optional: Flex Messaging Common (* 7) BLAZEDS_HOME | |
| Java Cryptography Extensions | |
| (see note (*8)) | |
| --------------------------------------------------------------------- | |
| * 1) | |
| The bin directories for ANT_HOME and JAVA_HOME should be added to your PATH. | |
| On Windows, set PATH to | |
| PATH=%PATH%;%ANT_HOME%\bin;%JAVA_HOME%\bin | |
| On the Mac (bash), set PATH to | |
| export PATH='$PATH:$ANT_HOME/bin:$JAVA_HOME/bin' | |
| On Linux make sure your path includes ANT_HOME and JAVA_HOME. | |
| * 2) | |
| The Adobe AIR integration kit for Windows can be downloaded from: | |
| https://airdownload.adobe.com/air/win/download/32.0/AdobeAIRSDK.zip | |
| The Adobe AIR integration kit for Mac can be downloaded from: | |
| https://airdownload.adobe.com/air/mac/download/32.0/AdobeAIRSDK.dmg | |
| The Adobe AIR integration kit for Linux is no longer available from Adobe. | |
| Download the AIR SDK for your platform and unzip it. Set AIR_HOME to the | |
| absolute path of the AIR SDK directory. | |
| This version of the Apache Flex SDK was certified for use with Adobe AIR 16 | |
| and is compatible with version 3.1 and up. It has been fully tested on AIR 3.7, | |
| 4 and 16. | |
| * 3) | |
| The Adobe Flash Player content debuggers can be found here: | |
| - Windows: https://fpdownload.macromedia.com/pub/flashplayer/updaters/32/flashplayer_32_sa_debug.exe | |
| - Mac: https://fpdownload.macromedia.com/pub/flashplayer/updaters/32/flashplayer_32_sa_debug.dmg | |
| - Linux: https://fpdownload.macromedia.com/pub/flashplayer/updaters/32/flash_player_sa_linux_debug.x86_64.tar.gz | |
| This version of the Apache Flex SDK was certified for use with Adobe Flash | |
| Player 11.1, and is compatible with version 10.2 and up. It has been tested | |
| with versions 11.1, 11.7, 13.0 and 16.0 on Windows and Mac. It has been | |
| compiled, but not fully tested, with other Adobe Flash Player versions. | |
| It has not been fully tested on Linux. | |
| On Windows, set FLASHPLAYER_DEBUGGER to the absolute path including the | |
| filename of the FlashPlayerDebugger.exe. Note the filename of flash player | |
| debugger may be different, e.g. C:\MyPath\FlashPlayerDebugger.exe. | |
| On the Mac, set FLASHPLAYER_DEBUGGER to the absolute path of | |
| 'Flash Player Debugger.app/Contents/MacOS/Flash Player Debugger' | |
| On Linux, set FLASHPLAYER_DEBUGGER to the absolute path of flashplayerdebugger. | |
| * 4) | |
| The Adobe Flash Player playerglobal.swc for 32.0 can be downloaded from: | |
| https://fpdownload.macromedia.com/get/flashplayer/updaters/32/playerglobal32_0.swc | |
| Set PLAYERGLOBAL_HOME to the absolute path of the player directory (not | |
| including the version subdirectory). The target-player option controls which | |
| PLAYERGLOBAL_HOME subdirectory is used. | |
| Additional information about downloading and setting up this and/or other | |
| versions of the Adobe Flash Player can be found in the section | |
| 'Adobe Flash Player Version Support' below. | |
| * 5) | |
| The build scripts assume that the root folder containing the source code for | |
| Apache Flex Text Layout Framework ('flex-tlf') is at the same level as the SDK | |
| root folder ('flex-sdk'). See 'Getting the source code', below. If this is not | |
| the case on your system, then you must set the TLF_HOME environment variable to | |
| point to your TLF root folder. If you are using a released artifact, the | |
| source should be included in the artifact, so setting TLF_HOME is not | |
| required. | |
| * 6) | |
| The Adobe Extension Manager is only required for those creating releases or | |
| testing changes to the flash-integration SWC. Note that if you change APIs on | |
| classes that flash-integration depends on, you may need to update | |
| flash-integration. | |
| On Windows, download the Adobe Extension Manager from: | |
| http://download.macromedia.com/pub/dw_exchange/extension_manager/win/AdobeExtensionManager5All.zip | |
| On Windows 10, download the Adobe Extension Manager CS6 from: | |
| http://download.macromedia.com/pub/dw_exchange/extension_manager/win/AdobeExtensionManager6_0_8All.zip | |
| and set ADOBE_EXTENSION_MANAGER to the absolute path of | |
| 'Adobe Extension Manager CS5.exe' | |
| On Mac, download the Adobe Extension Manager from: | |
| http://download.macromedia.com/pub/dw_exchange/extension_manager/mac/AdobeExtensionManager5All.dmg | |
| and set ADOBE_EXTENSION_MANAGER to the absolute path of | |
| 'Adobe Extension Manager CS5.app/Contents/MacOS/Adobe Extension Manager CS5' | |
| On Linux, no Adobe Extension Manager exists. | |
| * 7) | |
| The build scripts assume that the root folder containing the source code for Apache | |
| Flex BlazeDS ('flex-blazeds') is at the same level as the SDK root folder | |
| ('flex-sdk'). See 'Getting the source code', below. If this is not | |
| the case on your system, then you must set the BLAZEDS_HOME environment variable | |
| to point to your BLAZEDS root folder. If you are using a released artifact, the | |
| source should be included in the artifact, so setting BLAZEDS_HOME is not | |
| required. | |
| * 8) | |
| The Java Cryptography Extensions (JCE) Unlimited Strength jars are needed in | |
| order to download 3rd party software. Download and install this from Oracle | |
| which version you need will depend on your Java version and OS. | |
| Get the source code | |
| ------------------- | |
| You can get the source directly from the source code repository (Apache Flex | |
| uses git for SCM). | |
| Clone the latest source ('develop' branch) using the following commands: | |
| git clone https://git-wip-us.apache.org/repos/asf/flex-sdk.git flex-sdk | |
| cd flex-sdk | |
| git checkout develop | |
| The Apache Flex SDK also requires source code from the Apache Flex Text Layout | |
| Framework (TLF). To get the latest source for TLF ('develop' branch), use the | |
| following commands: | |
| git clone https://git-wip-us.apache.org/repos/asf/flex-tlf.git flex-tlf | |
| cd flex-tlf | |
| git checkout develop | |
| The Apache Flex SDK also requires source code from Apache Flex BlazeDS. To get | |
| the latest source for Apache Flex BlazeDS (‘master’ branch), use the | |
| following commands: | |
| git clone https://git-wip-us.apache.org/repos/asf/flex-blazeds.git flex-blazeds | |
| cd flex-blazeds | |
| Another option to get the source is to download a released source package. | |
| For further information visit: | |
| http://flex.apache.org/download-source.html | |
| Build the SDK | |
| ------------- | |
| When you have all the prerequisites in place and the environment variables set, | |
| use these commands: | |
| cd <flex-sdk> | |
| ant main | |
| to download the third party dependencies and build the source. You will be | |
| prompted to acknowledge and/or confirm some of the downloads. Since the | |
| third-party dependencies take a little while to download and they don't change | |
| very often, they are not cleaned with the regular 'clean' target. | |
| If you would like to build the RSLs, use: | |
| ant frameworks-rsls | |
| To clean the build of everything other than the downloaded third-party | |
| dependencies, use: | |
| ant clean | |
| To clean the build of everything, including the downloaded third-party | |
| dependencies, use: | |
| ant super-clean | |
| To generate a source distribution package and a binary distribution package, | |
| use: | |
| ant -Dbuild.number=<YYYYMMDD> -Dbuild.noprompt= release | |
| The packages can then be found in the <flex-sdk>\out directory. | |
| To build the ASDoc package, use: | |
| ant asdoc-package | |
| To get a brief listing of all the targets, use: | |
| ant -projecthelp | |
| Prepare the SDK for use with an IDE | |
| ----------------------------------- | |
| To create an SDK for Flash Builder or any other IDE, run: | |
| cd <flex.dir> | |
| ant frameworks-rsls | |
| ant -f installer.xml | |
| If you want to set the Flash Player and AIR versions to something other | |
| than their defaults, pass the versions to the ant script like so: | |
| ant -f installer.xml -Dflash.sdk.version=32.0 -Dair.sdk.version=32.0 | |
| On Mac/Linux the AIR and Flash Player version can be changed, after the SDK | |
| has been compiled, by running: | |
| ./ide/setFlashPlayerVersion.sh ./ 32.0 | |
| ./ide/addAIRtoSDK.sh 32.0 ./ | |
| Using the Binary Distribution | |
| ============================= | |
| In order to use the binary distribution of the SDK, follow the instructions in | |
| the 'Prepare the SDK for use with an IDE' section above. | |
| Flash Player Configuration | |
| ========================= | |
| For testing, the Adobe Flash Player's mm.cfg file must have the following | |
| entries | |
| ErrorReportingEnable=1 | |
| TraceOutputFileEnable=1 | |
| and a FlashPlayerTrust file must allow local SWFs to access local files. | |
| More information about these settings can be found here: | |
| http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7c95.html | |
| Other Locale Support | |
| ==================== | |
| The Apache Flex SDK defaults to using the en_US locale and SDK error messages | |
| are by default displayed in American English. | |
| To compile the SDK for another locale either: | |
| Change the locale in the build.properties file to have a value other than | |
| 'en_US'. For this new locale to take effect, the SDK needs to be recompiled. For | |
| example, to use the Australian English locale change locale to have a value of | |
| 'en_AU' like so: | |
| locale = en_AU | |
| OR | |
| Compile the SDK with a -Dlocale=<locale> option, where <locale> is the new | |
| locale to compile the SDK against. | |
| To compile all supported locales, which may take some time, use: | |
| ant other.locales | |
| The list of supported locales currently include: | |
| da_DK el_GR en_GB fi_FI it_IT nb_NO pt_PT zh_CN | |
| de_CH en_AU en_US fr_CH ja_JP nl_NL ru_RU zh_TW | |
| de_DE en_CA es_ES fr_FR ko_KR pt_BR sv_SE | |
| The Apache Flex SDK has only been tested for the en_US locale. However, you are | |
| unlikely to run into any issues with a SDK compiled for another locale. | |
| Adobe Flash Player Version Support | |
| ================================== | |
| The Apache Flex SDK defaults to using the Adobe Flash Player 11.1. The SDK can | |
| be used with Flash Player versions 10.2 and up. | |
| It is recommended that you update to the latest version of Adobe Flash Player. | |
| Newer versions of the Adobe Flash player address security vulnerabilities, fix | |
| bugs/issues, increase stability, and support new features. | |
| To use the SDK for another version of the Adobe Flash Player either: | |
| Change the flex-config.xml configuration file to specify another version of the | |
| Adobe Flash Player. | |
| OR | |
| Change the playerglobal.version in the build.properties file to have a value | |
| other than '11.1'. For this change to take effect, the SDK needs to be | |
| recompiled. For example, to compile against the latest version of the Adobe | |
| Flash Player, set the value of playerglobal.version to be '32.0' like so: | |
| playerglobal.version = 32.0 | |
| OR | |
| Compile the SDK with a -Dplayerglobal.version=<version> option, where <version> | |
| is the Adobe Flash Player version to compile the SDK against. | |
| Different versions of the Adobe Flash Player require different versions of | |
| playerglobal.swc. However, Adobe has stopped providing all older versions of | |
| playerglobal.swc, and only version 32.0 is available now. | |
| It can be found at: | |
| https://fpdownload.macromedia.com/get/flashplayer/updaters/32/playerglobal32_0.swc | |
| Copy the target playerglobal.swc to the directory: | |
| frameworks/libs/player/<version.major>.<version.minor>/playerglobal.swc | |
| On OSX, running the script: | |
| ./ide/checkAllPlayerGlobals.sh | |
| will download any new or missing player global swcs. | |
| Software Dependencies | |
| ===================== | |
| The Apache Flex SDK uses third-party code that will be downloaded as part of | |
| the build. In addition, you can choose to download optional third-party code | |
| if you would like to take advantage of the features offered, and you agree to | |
| the license terms. | |
| The following dependencies have licenses which are, or are compatible with, the | |
| Apache Version 2.0 license. You will not be prompted to acknowledge the | |
| download. Most of the jars are installed in lib/external. | |
| batik - http://archive.apache.org/dist/xmlgraphics/batik/batik-1.6.zip | |
| commons-collections - http://archive.apache.org/dist/commons/collections/binaries/commons-collections-3.0.tar.gz | |
| commons-discovery - http://archive.apache.org/dist/commons/discovery/binaries/commons-discovery-0.2.tar.gz | |
| commons-logging - http://archive.apache.org/dist/commons/logging/binaries/commons-logging-1.0.4.tar.gz | |
| javacc - http://java.net/projects/javacc/downloads/download/javacc-5.0.tar.gz | |
| velocity - http://archive.apache.org/dist/velocity/engine/1.4/velocity-1.4.tar.gz | |
| xalan - http://archive.apache.org/dist/xml/xalan-j/binaries/xalan-j_2_6_0-bin.tar.gz | |
| xerces - http://archive.apache.org/dist/xerces/j/binaries/Xerces-J-bin.2.9.1.zip | |
| The following dependencies have licenses which Apache considers to be | |
| reciprocal licenses. These files are installed in lib/external | |
| frameworks/libs respectively. | |
| saxon9 - http://sourceforge.net/projects/saxon/files/Saxon-B/9.1.0.8/saxonb9-1-0-8j.zip/download | |
| osmf.swc (Open Source Media Framework v2.0; used for video components) - http://sourceforge.net/projects/osmf.adobe/files/OSMF%201.0%20%28final%20source%2C%20ASDocs%2C%20PDF%20guides%2C%20and%20release%20notes%29/OSMF_1.0.zip/download | |
| saxon9 is released under the Mozilla Public License Version 1.0: | |
| osmf.swc is released under the Mozilla Public License Version 1.1: | |
| http://www.mozilla.org/MPL/ | |
| The following dependencies have licenses which Apache considers to be | |
| incompatible with the Apache License Version 2.0. You will be prompted to read | |
| and agree to the license terms of the dependency before the software can be | |
| downloaded to your system. These are optional components which enable | |
| additional features. They are installed in libs/external/optional. | |
| adt.jar, afe.jar, aglj40.jar, flex-fontkit.jar and rideau.jar (provide embedded font support) | |
| These jars are extracted from: | |
| http://fpdownload.adobe.com/pub/flex/sdk/builds/flex4.6/flex_sdk_4.6.0.23201B.zip | |
| and are released under an Adobe license: | |
| http://www.adobe.com/products/eulas/pdfs/adobe_flex_software_development_kit-combined-20110916_0930.pdf | |
| Thanks for using the Apache Flex SDK. Enjoy! | |
| The Apache Flex Project | |
| <http://flex.apache.org> |