最近研究Flascc顺道应用到AIR for IOS项目中,发现Flascc编译的优化等级与打包IPA有着非常大的关系 首先是一个老外先发现的:传送门 AIR 打包IPA先说说AIR for IOS打包,打包限制发行版和发行版 官方文档说需要多一点时间,其实那里止需要多一点时间啊,除了时间需要多一点以外(4G内存版MAC 需要15分钟以上),还需要配置64位的机子 4G以上内存,32位的别想打包IPA顺畅了(注意 是顺畅 不是不能),翻看JAVA虚拟机LVM官方解释是 32位的虚拟机限制到1.5G的内存,而64位的JDK则不限制内存,而AIR 打包IPA的时候虚拟机内存一路飙升,我一开始使用32位+4G内存打包的时候 打开内存查看器看到java.exe所占内存一路高歌 直到爆掉。不禁让人唏嘘,请问adobe打包个ipa要那么多内存干什么?
打包IPA的一般命令如下:(copy 上面的传送门) - <font color="rgb(51, 51, 51)">ADT -package -target ipa-app-store -storetype pkcs12
- -storepass xxxxxx -keystore yyyyyy.p12
- -provisioning-profile zzzzzz.mobileprovision
- hello.ipa app.xml hello.swf</font>
复制代码 Flascc 应用到IOS项目
关于Flascc应该大家都知道了,编译C++为swc应用到swf中的一个桥梁,我最近研究发现它有一个参数,例如如下命令:- "$(FLASCC)/usr/bin/g++" $(BASE_CFLAGS) -jvmopt=-Xmx1G -O0
- md5.cpp XmshFunc.cpp XmshCode.cpp main.cpp
- -emit-swc=xmshcode.flascc -o XmshCode.swc
复制代码 参数:-jvmopt=-Xmx1G 的作用是先定义空间内存大小,我们知道任何所有需要LVM的程序都是需要这个东西的。
参数: -O0 是指优化swc的等级 有 0 2 4的选项。
默认为0,O为optimization首字母。现在问题来了,当选择-O4的时候 编译swc 应用到swf打包IOS 发行版IPA的时候,时间会非常长。
比传送门中老外的20多min还长。
我打包了一天都没还在打包。
解决方式
1.-O优化等级降低 使用-O2或者-O0
2.精简FLASCC中C++代码 尽量做最关键的事情
本文来自:http://shadowkong.com/archives/1381
|