MacOS / iPhone库交叉编译的最佳实践

时间:2010-03-22 11:35:02

标签: iphone cocoa cocoa-touch macos

我已经构建了一个在Cocoa Touch环境中运行良好的静态库。现在我想为Cocoa编译它。我可以拥有一个具有不同sdk目标的XCode项目吗?是否有一些资源可以提供关于这(和其他)意义上的最佳实践的提示?

2 个答案:

答案 0 :(得分:1)

可以完成,但需要对构建进行一些手动调整。

Xcode Build System Guide.

开始

作为实现此目的的一种非正式方式,您可以创建两个单独的项目,并为每个项目添加完全相同的库源文件集的引用。设置一个项目为Cocoa-Touch编译,另一个为Cocoa编译。如果两个项目都引用相同的文件,则在一个项目中所做的更改将自动反映在另一个项目中。 (如果你打开了这两个项目,Xcode会抱怨该文件已经被另一个应用程序更改了,否则它将不会被注意到。)

我有一个实用程序类,我不断地转储新方法。我将它添加到每个项目中,并根据需要停放方法。新方法显示在旧项目中,因为源文件在所有项目中共享。

答案 1 :(得分:1)

最近两个月我一直致力于完成这项任务(为iPhone / Android / Mac OS / Linux / Windows交叉编译静态库......

当然,一种不错的方法是将外部xcode项目添加为第一个xcode项目的目标。因此,您需要为Mac OS X,iPhone和其他要支持的平台创建新的“活动配置”。

Here,您可以找到一个很好的教程,了解如何使用辅助Xcode项目作为主项目的目标来构建静态库。这是一种很酷的方式,因为如果你调试例如你仍然拥有库的所有符号等等。