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

20

最近我一直在利用空余时间创建一个2D游戏编程工具包/库。它是用Objective C编写的,包括OpenGL渲染系统、大量的AI、物理代码、一堆专业容器和其他与游戏相关的内容。除了基于OpenGL的视图机制(显然),由于它只使用Foundation Framework,所以这个代码中的大部分应该很容易移植到iOS平台上,因为该框架似乎已经在iOS上实现。到目前为止,我只是在使用Cocoa NSOpenGLView测试各种组件,但现在我想创建一个OS X/iOS库。

我的问题是:

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

Xcode中的“新项目”对话框只提供以下选项:

iPhone OS; Library:
- Cocoa Touch Static Library.

Mac OS X, Framework and Library:
- Cocoa Framework
- Cocoa Library
- Bundle
- BSD C Library
- STL C++ Library
- JNI Library

乍一看,这些选项似乎都不适用于创建可集成到OS X或iOS应用程序中的库。

2个回答

10

好的,我终于找到了正确的Google搜索词组,回答了自己的问题(笨蛋!)。至少在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

尚未测试任何内容,但看起来很有前途。


只有第一个链接有效,其他三个已失效。 - Pang
2
这些链接现在都无法使用了。 - mttrb

6
你可以使用Targets实现这一点。
为Cocoa Library创建一个新项目。然后添加一个新的iOS静态库目标。在创建新文件时,请确保将它们添加到适当的目标中(即在您的情况下可能是两个),并根据需要设置每个目标的构建设置。
在不同平台上使用您的库的项目将需要链接到适当的产品,但您不需要复制您的代码。

所以我猜一个独特的框架目标不能同时处理两个。特别是将SDKROOT设置为最新的iOS和OS X SDK似乎不起作用。 - Rivera

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接