by Eric Simenel
Table of contents
11 March 2016
With AIR 20, Adobe now provides AIR Runtime in 64bit on Mac OS X. This change impacts all AIR developers using ANEs on Mac OS X.
This package provides both the original tutorial "MacOS-NativeExtension-Test" creating the 32bit ANE and its test application, and the updated tutorial "MacOS-NativeExtension-Test-64" creating the 64bit ANE and the same test application.
If you have never written a Mac OS X ANE, then you can directly follow the instructions found within the ANE tutorial uploaded to this article at the following location: <MacOS-NativeExtension-Test-64>/Instructions.html.
If you have written a 32bit Mac OS X ANE (possibly based on the original tutorial) then this article will guide you through the changes you need to make to create the 64bit version of this ANE.
The easiest way to identify the changes between the 2 tutorials is to run a file comparison. You may use any tool you are familiar with, provided that it can do folder comparison.
I favor "FileMerge" that can be found inside the Xcode Application at /Applications/Xcode.app/Contents/Applications/
Running the tool, compare MacOS-NativeExtension-Test/NativeExtensions and MacOS-NativeExtension-Test-64/NativeExtensions.
In most shell scripts, the path to Adobe Flash Builder was updated from 4.6 to 4.7. This is needed but not relevant to the 64bit update changes. This difference is considered as a "no change" below.
- "00 - create cert" - no change
- "01 - create swc" - no change
- "02 - create platform extension" - 3 changes
- First change: in the "go.sh" script, the arch is changed from i386 to x86_64.
- Second change: the source code TestNativeExtension.cpp was updated to fix a few leaks (sorry). None of these changes are relevant to the 64bit update.
- Third change: the project.pbxproj (inside TestNativeExtension.xcodeproj) has 8 differences.
- The main change is that the "Adobe AIR 64" dylib was added in the project (and to the target TestNativeExtension). This dylib is found at Adobe AIR.framework/Versions/1.0/ (look at the diff).
- The paths were updated from Adobe Flash Builder 4.6 to 4.7.
- An unnecessary LIBRARY_SEARCH_PATH was removed.
- "03 - create ane" - 2 changes
- First change: in the "go.sh" script, the platform is changed from MacOS-x86 to MacOS-x86-64.
- Second change: in the src/extension.xml, the platform name is changed from MacOS-x86 to MacOS-x86-64.
- "04 - create dmg" - no change
- "05 - run on adl" - no change
- "goall.sh" - no change
Those minimal changes successfully convert the creation of a 32bit ANE to the creation of a 64bit ANE. The test application does not need to be changed in order to test the ANE.
To summarize and recapitulate the necessary changes:
- Add the "Adobe AIR 64" dylib to the Xcode project and build it in 64bit.
- Change the platform name to MacOS-x86-64 in extension.xml and specify that platform when building the ANE with ADT.
For more information on developing 64-bit ANE on Mac OS X, see this blog: AIR 64 bit on Mac OS X.
AIR 64-bit on Mac OSX
AIR 64-bit on Mac OSX