Adobe Air ios packager

There seems to be a lot of confusion regarding the deployment of Adobe Air applications on ios after the restrictions are lifted. Before the apple lifted the restrictions, you had to go through the process described here: http://blogs.adobe.com/cantrell/archives/2010/09/packager-for-iphone-refresher.html using 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.

My understanding is that the old Packager for iPhone (PFI) somehow turned the ActionScript code into the original C object to be accepted by the apple.

If this is correct, the removed restrictions mean that the ADT tool does not convert to lens C and only together with ASF.swf and the air player creates the .ipa app file together?

What exactly has changed during the deployment of Air after the apple lifted the restrictions?

If anyone can point me to some documentation on how the .ipa file is created behind the scenes, I think this will really fix some confusion.

thanks for the help

+3
source share
1 answer

Nothing changed; the apple just lifted the ban. The ban was made not only on flash applications, but also on any tool that created any intermediary language or used a virtual machine, etc. What PFI does: in fact, it uses the LLVM compiler to statically compile ActionScript 3 BYTECODE (not the AS3 source) into an ARM assembly. Therefore, when you deploy IPA, this is the same idea as publishing SWF to exe (as in publishing settings) in the sense that both your SWF application and the Flash virtual machine are combined together, instead of being exe where inside The code is x86 ASM with AS3 bytecode running along the virtual machine, this is ARM. PFI and all its classes were simply combined into an ADT tool. PFI contains the LLVM DLL, which is accessed through various Java LLVM classes that have been added to the internal version of Adobe ASC or the ActionScript compiler. However, these LLVM classes and other related classes are not open source that adobe can run, although ASC is open source, as it is licensed under the public MPL or mozilla license, which allows you to use open source code in closed source applications without sharing your changes.

To prove everything I told you, just download the new Flex SDK, which includes ADT with integrated PFI, and you will find the LLVM DLL, etc. Alternatively, you can decompile the ADT jar and view all LLVM classes. The LLVM classes (I believe) intercept the ASC bytecode through the GlobalOptimizer class, or at least it happened that day ... they probably changed that. The only thing that has changed is that Adobe seems to have optimized PFI (now integrated into ADT) quite a bit. More details here:

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

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

Update

Here's an official Adobe article confirming what I told you:

http://www.adobe.com/devnet/logged_in/abansod_iphone.html I must also clarify that I really simplified the process behind the curtains and, apparently, was mistaken in one of my points. I think that somehow PFI actually combines the AS3 bytecode and the virtual machine into a single seamless executable that does not use JIT compilation and, therefore, technically will not be a virtual machine? Not sure about this, but this article seems to imply the following:

β€œWhen you create an iOS app, there is no interpreted code and no runtime in your final binary format. Your app is indeed a native iOS app.

+13
source

All Articles