2012-08-13 55 views
2

我正在接受一個非常有趣的項目。我必須完成的任務是找出讓合作伙伴參與應用程序而不放棄源代碼的方法。代碼將包含在應用程序的主包中,因此不會動態存儲。合作伙伴有一個功能齊全的應用程序,需要在適當的時候在主應用程序的窗口中運行。我知道讓合作伙伴創建一個網絡應用程序將是理想的,因此它被視爲一個網頁,但我更關心必須在iOS中本地編寫的代碼。在App中創建應用程序

我的問題是解決這個問題的最好方法是什麼?理論上它就像一個應用程序內的應用程序。如果他們放棄了他們的.app文件,有沒有辦法,我可以將它包含在捆綁包中,然後在捕獲特定事件時運行它?我應該讓合作伙伴在框架中創建他們的代碼,然後導入到shell項目中嗎?解決這個問題的最好方法是什麼?

回答

1

如果他們放棄他們的.app文件,有沒有辦法我可以在 這個包中包含這個,然後在我捕獲某個事件時運行它?

不,你會希望讓他們創建一個庫。然後,您可以將該庫包含在您的項目中。

創建庫很簡單,只要:

  1. 選擇文件 - >新建...->項目......在Xcode。

  2. 選擇「Cocoa Touch Static Library」項目模板。

  3. 添加您的代碼。

  4. 構建。

結果是一個靜態庫,您可以將它添加到您的應用程序中。該庫將包含您添加的已編譯代碼,但不包括源代碼。庫開發人員應該提供使用庫中代碼所需的任何頭文件。

+0

是的,你可以像@Caleb描述的那樣來做到這一點。 – Deepak 2012-08-14 06:36:23

2

如果你的第二方不想爲你提供源代碼,爲什麼他不編譯它到目標代碼,然後讓你簡單地將它鏈接到你的應用程序?順便說一下,至少在官方(非越獄)的iDevices上,應用程序不能以這種方式'嵌入'或'打開'另一個 - 您可以以編程方式打開應用程序,如果它是一個單獨的應用程序2.它有一個與其捆綁相關的註冊特殊URL。

+0

你知道任何教程和/或將代碼編譯成目標代碼的例子嗎?我可能沒有正確理解。 – Krzemienski 2012-08-13 20:38:43

+0

@Krzemienski任何編譯器都有一個選項。看看'clang -c'。 (當然谷歌目標代碼。) – 2012-08-13 20:42:25

0

應用程序內的應用程序是可能的,但它需要一個通用的數據框架,允許一個應用程序引用相同的數據,而不會混淆數據的來源和目標。 這樣的框架允許一個應用程序與引用相同數據的另一個應用程序進行交互。