适用于iOS和OS X应用程序的库?

时间:2010-09-19 13:47:05

标签: iphone macos ios code-reuse

有一段时间我通过创建2D游戏编程工具包/库来杀死业余时间。它是用Objective C编写的,由一个OpenGL渲染系统和一大堆AI,物理代码,一堆专门的容器和其他游戏相关的东西组成。除了基于OpenGL的View机制(显然)之外,大部分代码都应该可以轻松移植到iOS,因为它只使用Foundation Framework,并且该框架似乎是在iOS上实现的。到目前为止,我只使用Cocoa NSOpenGLView测试各种组件,但现在我想创建一个OS X / iOS库。

我的问题是:

创建可以集成到iOS或OS X应用程序中的Objective-C库的最佳策略是什么?

Xcode'新建项目'对话框仅提供:

iPhone OS ;图书馆:
  - Cocoa Touch Static Library。

Mac OS X ,框架和图书馆:
  - 可可框架
  - 可可图书馆
  - 捆绑
  - BSD C图书馆
  - STL C ++库
  - JNI图书馆

乍一看,似乎没有一个用于创建可以集成到OS X或iOS应用程序中的库。

2 个答案:

答案 0 :(得分:10)

好吧,我终于找到了正确的Google搜索词集,所以为了回答我自己的问题(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

尚未对此进行测试,但看起来很有希望。

答案 1 :(得分:6)

您可以使用Targets执行此操作。

为Cocoa库创建一个新项目。然后为iOS静态库添加新目标。在创建新文件时,请确保将它们添加到适当的目标(即大概在您的情况下),并根据需要设置每个目标的构建设置。

在不同平台上使用您的图书馆的项目需要链接到相应的产品,但您不需要复制代码。