2011-08-01 145 views
3

解除限制後,似乎有很多關於將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工具。Adob​​e Air ios打包程序

我的理解是,舊的Packager for iPhone(PFI)一些如何將動作代碼轉換爲本機目標C以便被蘋果接受。

如果這是正確的,那麼提升的限制意味着ADT工具不會轉換爲目標C,並且僅在創建.ipa應用程序文件時將AS3 .swf和air player捆綁在一起?

蘋果解除限制後,Air部署過程中發生了什麼變化?

如果任何人都可以指點我一些關於如何在後臺創建.ipa文件的文檔,我認爲這將真正清除一些混淆。

感謝您的幫助

回答

13

沒有真正改變;蘋果剛剛解除禁令。禁止不僅僅是在閃存創建的應用程序上,它是在任何創建任何中間語言或使用虛擬機等工具上。PFI的作用:它實際上使用LLVM編譯器靜態編譯actionscript 3 BYTECODE(而不是AS3源)到本地ARM程序集。所以,基本上,當您部署IPA時,與將SWF發佈到EXE(如發佈設置中)相同,因爲SWF應用程序和Flash虛擬機都捆綁在一起,除了不是exe其中的代碼是x86 ASM,並且在虛擬機上執行AS3字節碼,這是ARM。 PFI及其所有類都簡單地合併到ADT工具中。 PFI包含一個LLVM dll,可通過各種LLVM java類訪問該類,這些類被添加到ASC或actionscript編譯器的內部adobe版本中。但是,這些LLVM類和其他關聯類不是開源的,即使ASC是開源的,因爲它是根據MPL或mozilla公共許可證授權的,因此它允許Adobe使用開放源代碼專有封閉源代碼應用程序,無需分享您的更改

爲了證明我剛剛告訴你的所有內容,只需下載新的flex SDK,包含合併了PFI的ADT,您就可以找到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字節碼和虛擬機合併成一個不使用JIT編譯的無縫可執行文件,因此在技術上不是虛擬機?在這一點上不確定,但上面的文章似乎暗示了這一點:

「當你爲iOS構建你的應用程序時,你的最終二進制文件中沒有解釋的代碼,也沒有運行時,你的應用程序是真正的本地iOS應用程序「。

+0

+1,很好的答案。 – TheDarkIn1978

+0

@Digital Architect:我想將動作swf文件加載到我的ios應用程序的uiwebview中。我知道我必須使用adob flash,但請您給我一些指導性鏈接或步驟來執行此任務。請。 – iShwar