2010-04-23 45 views
5

我的應用程序需要使用僅適用於Python和Ruby的庫。根據我的理解,只要用戶無法執行任意代碼(Rhomobile使用Ruby),Apple允許Ruby在iPhone上運行。在iPhone OS應用程序中使用Ruby/Python代碼?

如何將Ruby/Python與我的應用程序捆綁在一起,從Obj-C代碼中調用函數,並以C或Obj-C格式返回結果(字符串)?

回答

3

你不能。新的SDK協議prohibits using original languages other than C, C++, or Objective-C和SDK協議一直禁止動態解釋代碼。關於這些規則如何實施有些含糊不清,但爲了安全起見,最好避免使用其他語言,直到解決問題。

編輯:另外,據我所知,根據this question,目前沒有在iPhone上運行Python的技術方法。我聽說過在iPhone應用程序中嵌入Lua,但不是Python。您可以執行Python with a jailbroken iPhone,但不能通過應用商店。

紅寶石的情況幾乎一樣糟糕,根據this question。 iPhone不附帶Ruby解釋器,並且compilers遠離工作。 Rhomobile通過將解釋器和框架與可執行文件打包在一起工作,我非常懷疑它會通過新的SDK協議。如果你真的想使用Ruby,Rhomobile可能是最好的選擇(因爲實現你自己的解釋器可能需要很多工作,同樣不太可能被批准)。這是一個相當令人沮喪的景觀 - 我們最希望的是MacRuby最終會工作,而蘋果會批准它。不過,這還有很長的路要走。

編輯2:我也剛剛發現了約tinypy,它可能適用於Python。我懷疑它會運行真正的圖書館。

+0

我願意把我的機會與蘋果;我想他們會讓我通過。有誰知道如何做到這一點? – igul222 2010-04-23 22:44:47

+7

@ igul222,你認爲是錯的。 – 2010-04-23 23:06:22

+0

是的,我期待評論。我意識到這是不理想的,但真正沒有C/C++/ObjC替代品(在服務器上進行處理併發回結果,這需要網絡連接)。如果將來有什麼事情會中斷,應用程序會優雅地退化,但唯一真正的選擇是用C重寫庫,這是一個非常痛苦的選擇(至少對於像我這樣的缺乏經驗的程序員)我至少想試試這個先行路線。 – igul222 2010-04-23 23:52:03

3

僅供參考在App Store上有很多Rhomobile Rhodes應用程序,包括Wikipedia,MyHumana,SugarCRM的RhoLogic,多語言,TrackR等等。很多人都在http://rhomobile.com。我們經常與蘋果談話,並採取措施確保持續遵守所有iOS服務條款。

嚴格來說,最終原生應用程序附帶的內容不是解釋器,而是(在除BlackBerry之外的所有平臺上)Ruby 1.9字節碼執行程序。有意識地禁用真實解釋(eval)。

相關問題