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

os *_*erd 20 iphone macos code-reuse ios

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

我的问题是:

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

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

iPhone OS ; 图书馆:
- 可可触摸静态库.

Mac OS X,框架和库:
- Cocoa框架
- Cocoa库
- Bundle
- BSD C库
- STL C++库
- JNI库

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

os *_*erd 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 /博客/?p = 808

尚未测试任何此类但它看起来很有希望.

  • 这些链接现在都不起作用 (2认同)

Car*_*son 6

你可以用Targets做到这一点.

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

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