Adobe Air ios打包机
在解除限制之后,似乎有很多关于将Adobe Air应用程序部署到ios的困惑。 在苹果取消限制之前,您必须完成此处记录的流程: http : //blogs.adobe.com/cantrell/archives/2010/09/packager-for-iphone-refresher.html使用Packager for iPhone。 但是现在已经取消限制并且Air 2.7更新我们可以在我们用于所有空中应用程序的flex SDK中使用相同的ADT工具。
我的理解是,旧的Packager for iPhone(PFI)有些如何将动作脚本代码转换为本机目标C以便被苹果接受。
如果这是正确的,限制被取消意味着ADT工具没有转换为目标C并且只在创建.ipa应用程序文件时将AS3 .swf和air播放器捆绑在一起?
在苹果解除限制后,Air部署流程究竟发生了什么变化?
如果有人能指出我关于如何在幕后创建.ipa文件的一些文档,我认为这确实会让人感到困惑。
谢谢您的帮助
什么都没有改变; 苹果刚解除禁令。 禁令不只是在flash创建的应用程序上,而是在任何工具上创建任何类型的中间语言或使用虚拟机等.PFI做什么:它实际上使用LLVM编译器静态编译actionscript 3 BYTECODE(不是AS3源)到本机ARM程序集。 因此,当您部署IPA时,与将SWF发布到exe(就像在发布设置中)一样,SWF应用程序和Flash虚拟机都捆绑在一起,除了不是exe之外其中的代码是x86 ASM,沿着VM执行AS3字节码,它是ARM。 PFI及其所有类只是简单地合并到ADT工具中。 PFI包含一个LLVM dll,可通过各种LLVM java类访问,这些类添加到ASC或actionscript编译器的内部adobe版本中。 然而,这些LLVM类和其他相关类不是开源的,adobe被允许这样做,即使ASC是开源的,因为它是根据MPL或mozilla公共许可证授权的,它允许使用开源代码。专有的闭源应用程序,无需共享您的更改
为了certificate我告诉你的所有内容,只需下载包含ADT且融合了PFI的新flex SDK,你就会找到LLVM dll等。此外,你可以反编译ADT jar并查看所有LLVM类。 LLVM类(我相信)通过类GlobalOptimizer拦截ASC字节码,或者至少它在当天做了……他们可能已经改变了。 唯一改变的是,显然Adobe已经对PFI(现在合并到ADT)进行了优化。 更多信息:
http://blogs.adobe.com/cantrell/archives/2010/09/packager-for-iphone-refresher.html
http://www.leebrimelow.com/?p=2754
更新
这是一篇官方的Adobe文章,证实了我告诉你的事情:
http://www.adobe.com/devnet/logged_in/abansod_iphone.html 。 我还应该澄清一下,我真的过度简化了幕后的过程,并且在我的一个观点中误认为我错了。 我想不知怎的,PFI实际上将AS3字节码和VM合并为一个不使用JIT编译的无缝可执行文件,从而在技术上不是虚拟机? 在这一点上不确定,但上面的文章似乎暗示了这一点:
“当您为iOS构建应用程序时,最终二进制文件中没有解释代码和运行时。您的应用程序确实是原生iOS应用程序。”