AIR ANE for iOS打入第三方静态库

好了,话不多说,只为自己下次再做的时候不要忘记了!

直接上代码,打包第三方的静态库的ANE需要的文件有:

1、用flash Builder创建一个flex库,在库里面添加一个action script类,写好接口代码,打包成swc(应将swc版本调整为需要的版本  -swc-version 14.等等。。。。。)

2、打开Xcode,创建一个静态库,具体怎么创就不说了,网上教程很多。然后,删掉.h文件,在.m文件里面写上应该写的代码,如:(初始化方法,销毁方法,以及其他的方法就没写出来了)

这就是给swc文件里面的call方法提供本地实现的内容,Button是我自己新建的一个类,里面有调用第三方SDK的方法。在buliding出.a文件的时候,需要注意了,应该是用release版本的真机测试版本。

3、现在还需要一个.p12证书,用flash Builder生成一个就好。

4、需要一个extension.xml配置文件,用来指定id,入口方法和销毁方法等。

<extension xmlns="http://ns.adobe.com/air/extension/3.5">
	<id>com.coolexp.ANELib</id>
	<versionNumber>1</versionNumber>
	<platforms>
		<platform name="iPhone-ARM">
			<applicationDeployment>
				<nativeLibrary>libiosanedemo.a</nativeLibrary>
				<initializer>ExtInitializer</initializer>
				<finalizer>ExtFinalizer</finalizer>
			</applicationDeployment>
		</platform>
	</platforms>
</extension>
注:上面的id是跟flex库项目中的ExtensionContext.createExtensionContext( "com.coolexp.ANELib", null);中引号里面要一样,
<nativeLibrary>libiosanedemo.a</nativeLibrary> <!--是打包ANE是需要的ios静态库,此静态库可以包含第三方的静态库,这个根本无所谓,但是能包含多少个第三方库就没亲测过了。-->
<initializer>ExtInitializer</initializer>  <!--这个用来标记初始化方法,就跟ios中的init初始化是一样的;-->
<finalizer>ExtFinalizer</finalizer>     <!-- /这个我只是猜测,相当于dealloc方法。-->

5、由于有第三方的SDK,里面有静态文件(.a文件),还有用来装图片等资源的Bundle文件,只需要将这些按照正常的ios工程来添加和使用就好,但是用到了一些AIR SDK不默认支持的库,就需要一个动态链接配置文件来做了,名字就叫platformoptions.xml好了。代码如下:

<platform xmlns="http://ns.adobe.com/air/extension/3.5"> 
    <description > An optional description</description> 
    <copyright>2012 (optional)</copyright> 
    <linkerOptions>
        <option>-framework MessageUI</option>  <!--在air sdk中没能默认包含的框架-->
        <option>-lz</option>        <!--在air sdk中没能默认包含的库-->
    </linkerOptions>
     <packagedDependencies>
      <!-- <packagedDependency>libYiJiPayPlugin.a</packagedDependency>
       -->
    </packagedDependencies>
    
</platform>
可以看到,其实无需特别指定第三方的静态库啦!中途当然会遇到问题,不过一般简单查一下资料就可以了。

6、将所有的文件放在一个文件夹下吧,基本就是这些文件了,另外一个.a文件就是那个第三方的SDK。

下面我将打包ane的命令也贴上来

先cd到这个文件夹 /Applications/Adobe\ Flash\ CC/AIR3.6/bin/adt -package -storetype pkcs12 -keystore xxxxxxx.p12 -storepass 密码 -target ane xxxxxx.ane extension.xml -swc ifanesussec.swc -platform iPhone-ARM -platformoptions platformoptions.xml libiosanedemo.a library.swf

从命令可以看出,其实打包的时候,第三方库没有任何用处。

然后就是调用了:在任何的as项目的地方中,调用ANELibUtils.showBadageNum(35);然后打包成ipa,在打包的时候,需要将使用到的bundle资源添加到AIR项目中,一起编译成ipa就可以了。

好了,如果不出问题,就可以了。

好了,写的水平的确是忒次了,写得很凌乱,不理解的地方希望大家指出,其中,代码部分借鉴至天地会一大神。如有侵权,请及时告知。

源码就不奉献了,因为涉及到三方。

先就这样吧,睡午觉去了。



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值