简体   繁体   English

Adobe Air ios打包机

[英]Adobe Air ios packager

There seems to be a lot of confusion regarding deploying Adobe Air apps to ios after the restrictions were lifted. 在解除限制后,似乎有很多关于将Adobe Air应用程序部署到ios的困惑。 Before apple lifted the restrictions you had to go through the process documented here: http://blogs.adobe.com/cantrell/archives/2010/09/packager-for-iphone-refresher.html using the Packager for iPhone. 在苹果取消限制之前,您必须完成此处记录的流程: http//blogs.adobe.com/cantrell/archives/2010/09/packager-for-iphone-refresher.html使用Packager for iPhone。 But now that the restrictions have been lifted and the Air 2.7 update we can use the same ADT tool in the flex SDK that we use with all air applications. 但是现在限制已经取消并且Air 2.7更新我们可以在我们用于所有空中应用程序的flex SDK中使用相同的ADT工具。

My understanding is that the old Packager for iPhone (PFI) some how converted actionscript code into native objective C in order to be accepted by apple. 我的理解是,旧的Packager for iPhone(PFI)有些如何将动作脚本代码转换为本机目标C以便被苹果接受。

If that is correct does the restrictions being lifted mean that the ADT tool is not converting to objective C and is only bundling the AS3 .swf and air player together when creating the .ipa app file? 如果这是正确的,限制被取消意味着ADT工具没有转换为目标C并且仅在创建.ipa应用程序文件时将AS3 .swf和air播放器捆绑在一起?

What exactly changed in the Air deployment process after apple lifted its restrictions? 在苹果解除限制后,Air部署流程究竟发生了什么变化?

If anyone could point me to some documentation on how the .ipa file is being created behind the scenes I think this would really clear some confusion. 如果有人能指出一些关于如何在幕后创建.ipa文件的文档,我认为这确实会让人感到困惑。

Thanks for the help 谢谢您的帮助

Nothing really changed; 什么都没有改变; apple just lifted the ban. 苹果刚解除禁令。 The ban wasn't just on flash-created apps, it was on any tool that created any kind of intermediary language or used a virtual machine, etc. What the PFI does: it actually uses the LLVM compiler to statically compile actionscript 3 BYTECODE (not AS3 source) into native ARM assembly. 禁令不只是在闪存创建的应用程序上,而是在任何工具上创建任何类型的中间语言或使用虚拟机等.PFI的作用:它实际上使用LLVM编译器静态编译动作脚本3 BYTECODE(不是AS3源)到本机ARM程序集。 So essentially when you're deploying an IPA it's the same idea as publishing a SWF to an exe (as in the publish settings) in the sense that both your SWF application and the flash virtual machine are bundled together, except instead of being an exe where the code inside is x86 ASM with AS3 bytecode executed along the VM, it's ARM. 因此,当您部署IPA时,就像将SWF应用程序和Flash虚拟机捆绑在一起的意义上一样,将SWF发布到exe(就像在发布设置中)一样,除了不是exe之外其中的代码是x86 ASM,沿着VM执行AS3字节码,它是ARM。 The PFI and all its classes were simply merged into the ADT tool. PFI及其所有类只是简单地合并到ADT工具中。 The PFI contained a LLVM dll which is accessed through various LLVM java classes that were added to the internal adobe version of the ASC or actionscript compiler. PFI包含一个LLVM dll,可通过各种LLVM java类访问,这些类添加到ASC或actionscript编译器的内部adobe版本中。 These LLVM classes and other associated classes, however, are not open source, which adobe is allowed to do, even though the ASC is open source because it's licensed under the MPL or mozilla public license, which permits the use of the open source code in proprietary closed source applications without sharing your changes. 然而,这些LLVM类和其他相关类不是开源的,adobe被允许这样做,即使ASC是开源的,因为它是根据MPL或mozilla公共许可证许可的,它允许使用开源代码。专有的闭源应用程序,无需共享您的更改

For proof of all that I've told you, just download the new flex SDK that includes the ADT with the PFI merged in and you'll find the LLVM dll's etc. Further, you can decompile the ADT jar and see all the LLVM classes. 为了证明我告诉你的所有内容,只需下载包含ADT且融合了PFI的新flex SDK,你就会找到LLVM dll等。此外,你可以反编译ADT jar并查看所有LLVM类。 The LLVM classes ( I believe ) intercept the ASC bytecode through the class GlobalOptimizer, or at least it did back in the day... they've probably changed that. LLVM类(我相信)通过类GlobalOptimizer拦截ASC字节码,或者至少它在当天发生了......他们可能已经改变了这一点。 The only other thing that has changed is that apparently Adobe has optimized the PFI (now merged into ADT) quite a lot. 唯一改变的是,显然Adobe已经优化了PFI(现在合并到ADT中)。 More info here: 更多信息:

http://blogs.adobe.com/cantrell/archives/2010/09/packager-for-iphone-refresher.html http://blogs.adobe.com/cantrell/archives/2010/09/packager-for-iphone-refresher.html

http://www.leebrimelow.com/?p=2754 http://www.leebrimelow.com/?p=2754

Update 更新

Here is an official Adobe article confirming the things I've told you: 这是一篇官方的Adobe文章,证实了我告诉你的事情:

http://www.adobe.com/devnet/logged_in/abansod_iphone.html . http://www.adobe.com/devnet/logged_in/abansod_iphone.html I also should clarify that I've really over-simplified the process behind the scenes and appear to me mistaken in one of my points. 我还应该澄清一下,我真的过度简化了幕后的过程,并且在我的一个观点中看起来错了。 I guess somehow the PFI actually merges the AS3 bytecode and the VM into a single seamless executable that doesn't use JIT compilation, and thus would technically not be a virtual machine? 我想不知怎的,PFI实际上将AS3字节码和VM合并为一个不使用JIT编译的无缝可执行文件,从而在技术上不是虚拟机? Not sure on that point, but the above article does seem to imply this: 在这一点上不确定,但上面的文章似乎暗示了这一点:

"When you build your application for iOS, there is no interpreted code and no runtime in your final binary. Your application is truly a native iOS app." “当您为iOS构建应用程序时,最终二进制文件中没有解释代码和运行时。您的应用程序确实是原生iOS应用程序。”

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM