Flex

AIR Native Extension iOS with ARC -2-

その1の続きです。

Static Library が出来たので、今度はFlashBuilderでSWCとANEを作ります。

基本的に前 のものと変わりません。


まずはSWCから。

[ UITestANE.as ]
------------------------
package com.chocbanana.iphone{
    
    import flash.events.Event;
    import flash.events.EventDispatcher;
    import flash.events.IEventDispatcher;
    import flash.events.StatusEvent;
    import flash.external.ExtensionContext;
    
    public class UITestANE extends EventDispatcher{
        
        private var _ExtensionContext:ExtensionContext;
        
        public function UITestANE(target:IEventDispatcher=null){
            //TODO: implement function
            super(target);
            _ExtensionContext = ExtensionContext.createExtensionContext("com.chocbanana.iphone.UITestANE", null);
            _ExtensionContext.addEventListener(StatusEvent.STATUS, onStatusEventHandler);
        }
        
        public function dispose():void{
            _ExtensionContext.dispose();
        }
        
        public function getUIControl():void {
            try{
                _ExtensionContext.call("getUIControl");
            }catch(ex:Error){
                trace(ex.message);
            }
        }
        public function onStatusEventHandler(event:StatusEvent):void{
            //trace("Dispatch...");
            dispatchEvent(event);
        }
    }
}
[ EOF ]
------------------------


続いてdescriptor.xml

[ descriptor.xml ]
------------------------
<extension xmlns="http://ns.adobe.com/air/extension/3.1">
    <id>com.chocbanana.iphone.UITestANE</id>
    <versionNumber>1.0</versionNumber>
    <platforms>
        <platform name="iPhone-ARM">
            <applicationDeployment>
                <nativeLibrary>libTestARCLibrary.a</nativeLibrary>
                <initializer>initializer</initializer>
                <finalizer>finalizer</finalizer>
            </applicationDeployment>
        </platform>
    </platforms>
</extension>
[ EOF ]
------------------------

で、コンパイルして、SWCを作成します。


続いて ANE。
SWCをコピーして、コピーしたものの拡張子をzipに変えます。
zipファイルになったら、ダブルクリックして解凍後、library.swfを取り出します。

そこまで済んだら、今回はiOS用のplatform.xmlを書きます。
以下コピペ。

[ platform.xml ]
------------------------
<platform xmlns="http://ns.adobe.com/air/extension/3.1">
    <sdkVersion>5.0</sdkVersion>
    <linkerOptions>
        <option>-L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc</option>
        <option>-larclite_iphoneos</option>
    </linkerOptions>
</platform>
------------------------



XCodeで作成したStatic Library, SWCファイル、descriptor.xml, library.swf, platform.xmlがbinフォルダにあることを確認して、adtコマンドを使用してANEファイルを作成します。

XCodeのバージョンによって、 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc が変わってくると思います。
注意して下さい。

adtコマンドのオプションはこちら。

-package -target ane ARCANE.ane descriptor.xml -swc ARCANE.swc -platform iPhone-ARM -platformoptions platform.xml -C . library.swf  libTestARCLibrary.a

オプションの内容のみ掲載しておきます。

adtコマンド終了後、ANEが作られていることを確認してください。
次回はアプリケーションにANEを組み込んで終了です。

このページの先頭へ