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.
user562566
source share