2010-09-19 94 views
19

一段時間以來,我一直通過創建2D遊戲編程工具包/庫來節省空閒時間。它是用Objective C編寫的,包含一個OpenGL渲染系統和一大堆AI,物理代碼,一堆專用容器和其他與遊戲有關的東西。除了基於OpenGL的View機制外(很明顯),這些代碼中的大部分應該可以輕鬆地移植到iOS上,因爲它只使用Foundation Framework,並且該框架似乎在iOS上實現。到目前爲止,我只使用Cocoa NSOpenGLView測試了各種組件,但現在我想創建一個OS X/iOS庫。適用於iOS和OS X應用程序的庫?

我的問題是:

什麼是用於創建可集成到任何iOS或OS X應用程序一個Objective-C庫的最佳策略是什麼?

Xcode的 '新建項目' 對話框只提供:

iPhone OS;庫:
- Cocoa Touch靜態庫。

的Mac OS X,框架和庫:
- Cocoa框架
- 可可圖書館
- 捆綁
- BSD C庫
- STL C++庫
- JNI庫

乍一看這些似乎都不是用來創建一個可以集成到OS X或iOS應用程序中的庫。

回答

10

好了,我終於找到了正確的一組谷歌的搜索字詞,所以要回答我的問題(DOH!),這似乎是可以共享代碼,至少iPhone的應用程序,可能也iPhone和OS X應用程序之間在一定範圍內。你必須創建一個「靜態庫」和使用「跨項目引用」:

http://www.clintharris.net/2009/iphone-app-shared-libraries/
http://www.amateurinmotion.com/articles/2009/02/08/creating-a-static-library-for-iphone.html
http://zetetic.net/blog/2010/02/15/building-static-libraries-to-share-code-on-iphone-and-mac-os-x-projects/
http://weston-fl.com/blog/?p=808

沒有測試過任何這還沒有,但它看起來很有希望。

+0

只有第一個鏈接正在工作。其他3人死亡。 – Pang 2015-09-13 05:46:20

6

你可以用目標來做到這一點。

爲可可圖書館創建一個新項目。然後爲iOS靜態庫添加一個新的目標。在創建新文件時,確保將它們添加到適當的目標中(也就是說,在您的情況下),並根據需要設置每個目標的構建設置。

項目使用在不同的平臺上的庫將需要對相應產品的鏈接,但你不會需要複製你的代碼。

+0

所以我猜一個獨特的框架目標不能同時處理這兩個。特別是將'SDKROOT'設置爲最新的iOS和OS X SDK似乎都不起作用。 – Rivera 2014-10-30 09:44:09

相關問題