守望者--AIR技术交流
标题: Adobe AIR打包用到外部sdk的ANE时报错 [打印本页]
作者: 破晓 时间: 2015-1-15 14:32
标题: Adobe AIR打包用到外部sdk的ANE时报错
现象:
我们项目需要用到ANE扫二维码的功能,XCode里用ZBarSDK写好之后发布成ane,adt打包成ipa的时候报错如下:
- <font color="rgb(34, 34, 34)"><font face="Helvetica, Arial, sans-serif">Packaging failed!
- Packaging error message:
- Compilation failed while executing : ld64
- Packaging output:
- ld: warning: ignoring file /var/folders/l5/kql7svqx5j93vwg65tj3pt_c0000gn/T/8e0d5504-ffea-41da-a45b-22cfe260a197/libcn.flashj.ane.ios.QRScan.a, file was built for archive which is not the architecture being linked (armv7): /var/folders/l5/kql7svqx5j93vwg65tj3pt_c0000gn/T/8e0d5504-ffea-41da-a45b-22cfe260a197/libcn.flashj.ane.ios.QRScan.a
- Undefined symbols for architecture armv7:
- “_QRScanExtInitializer”, referenced from:
- _g_com_adobe_air_fre_fmap in extensionglue.o
- (maybe you meant: _QRScanExtInitializer_name)
- “_QRScanExtFinalizer”, referenced from:
- _g_com_adobe_air_fre_fmap in extensionglue.o
- (maybe you meant: _QRScanExtFinalizer_name)
- ld: symbol(s) not found for architecture armv7</font></font>
复制代码 起初以为是XCode里项目参数设置的有问题,怀疑“Link Binary With Libraries”中libiconv加得不对,可是仔细检查过没问题,而且所有该要的源文件已经包含在target里了。最后找到
解决方法:用到外部库开发的ane,都需要创建一个XML文件,在里面设置用到的外部库,就像我这里platformoptions.xml :- <platform xmlns="http://ns.adobe.com/air/extension/3.1">
- <description > An optional description</description>
- <copyright>2012 (optional)</copyright>
- <linkerOptions>
- <!-- <option>-framework CoreMotion</option> -->
- <option>-liconv</option>
- </linkerOptions>
- </platform>
复制代码 并且在adt打包参数中加入-platformoptions platformoptions.xml。dt打包参数中加入-platformoptions platformoptions.xml 就可以了。顺带,推荐个对iOS写ane有奇效的好工具:XCode-template-ane。
这是XCode模板,只要设置好你用来生成ane的接口swc路径和AIR SDK路径,剩下的只是写OC代码,它代替你做adt打包的步骤,一键自动生成ane。
本文来自:http://www.flashj.cn/wp/error-when-adt-package-ipa-with-ane-includes-ios-external-sdk.html
| 欢迎光临 守望者--AIR技术交流 (http://www.airmyth.com/) |
|