2012-12-03 22 views
2

好,拋開明顯的打包和簽名問題,是否可以通過使用來自非Apple操作系統(如Linux或Windows)的正確構造的LLVM位碼(IR)來編譯IOS/iPhone兼容的可執行文件,即通過利用開源編譯器基礎設施(如LLVM,Clang或GCC)的某種組合?是否可以使用兼容LLVM IR /位碼的非Apple操作系統來定位iPhone?

基本上,我考慮是

  1. 編譯預先存在的跨平臺SDK(IOS兼容),以LLVM中間表示(IR /位碼)。

  2. 分析並確定該層內的IOS專用LLVM(IR)的函數調用,使用LLVM分析工具。

  3. SDK來LLVM IR非蘋果系統上的編譯後,更換蘋果/ IOS生成-LLVM-位碼-SDK-表示由非產生的相應LLVM IR函數調用內Mac主機。

  4. [可能]使用Mac的XCode/Clang/LLVM基礎結構發出的構建標誌,以便在非Apple主機編譯機(例如Linux或Windows)上構建與IOS兼容的可執行文件。

如果這是在所有可行的,我後來調查的iPhone/IOS束的創建(IPA的施工記錄,詢問谷歌),並使用開源蘋果的代碼簽名程序,已經在內的其他跨平臺使用IOS SDK的

+0

是的,這是可能的。 – Geoffroy

+0

請在這方面取得進展時更新此問題!很有意思。 –

+0

@JohannesFahrenkrug - 這更可能是'**如果**我取得進展',但是,這是我感興趣的東西。我不知道我是否有'未加工'的計算機科學家的理解水平來解決這個問題:-(如果我[找到]我會告訴你... –

回答

3

看起來像Java到IOS正由RoboVM項目的照顧:

的Java到本機

的RoboVM編譯譯將Java字節碼轉換爲本地ARM或x86代碼。應用程序直接在CPU上運行。不涉及任何口譯員或虛擬機 。

它利用LLVM的,因爲我的問題建議。

另外值得注意的是Avian JVM項目。它可以用來編譯本地和IOS二進制文件(通過綁定JVM),但是我不確定其用戶界面(UI)層的狀態或完整性。

這兩個項目似乎都處於當前和不斷髮展的階段。

相關問題