Flascc与IOS打包IPA

最近研究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 上面的传送门)

[code lang=”java”]
ADT -package -target ipa-app-store -storetype pkcs12
-storepass xxxxxx -keystore yyyyyy.p12
-provisioning-profile zzzzzz.mobileprovision
hello.ipa app.xml hello.swf
[/code]

Flascc 应用到IOS项目

关于Flascc应该大家都知道了,编译C++为swc应用到swf中的一个桥梁,我最近研究发现它有一个参数,例如如下命令:

[code lang=”java”]
"$(FLASCC)/usr/bin/g++" $(BASE_CFLAGS) -jvmopt=-Xmx1G -O0
md5.cpp XmshFunc.cpp XmshCode.cpp main.cpp
-emit-swc=xmshcode.flascc -o XmshCode.swc
[/code]

参数:-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++代码 尽量做最关键的事情

发表评论

邮箱地址不会被公开。 必填项已用*标注