是否有在iPhone和iPad应用程序之间共享开发代码的最佳实践

时间:2011-08-05 01:40:27

标签: iphone ipad ios4

我想构建两个应用程序,一个针对iphone进行了优化,另一个针对ipad进行了优化。

这两个应用程序都会调用服务器API调用,并且会为模型对象共享相同的代码,因此我想在iphone和ipad项目之间共享此代码。

我正在使用xCode 4,它具有工作空间的概念(应该允许在项目之间共享代码),但我想知道是否需要为共享代码创建另一个项目。

有没有人这样做并且愿意分享最佳做法?

2 个答案:

答案 0 :(得分:4)

我更喜欢在项目之间共享代码,无论是iPhone / iPad重用还是其他任何共享方案,都可以利用静态库项目来存放共享代码,并在所有使用它的项目中用作目标依赖项。更详细一点......

您可以使用Cocoa Touch静态库模板创建新的Xcode项目。该项目可以容纳项目之间的所有共享代码。然后,在任何要使用静态库的应用程序中,可以通过将静态lib项目拖动到客户端项目中来向静态库项目添加项目引用。在此客户端项目中,最好将静态库添加为客户端项目的Target Dependency构建阶段。这会强制在构建客户端项目时重新构建共享库。然后,您将静态库产品添加到客户端项目的“Link Binary With Libraries”构建阶段。

而且,作为最后一个警告,您还需要告诉客户端项目静态库的标头位于何处。这是静态库不包含自己的头文件的结果,就像Mac上的Cocoa框架一样。为此,只需在客户端项目中找到“标头搜索路径”构建设置,并添加静态库标头的路径。我发现最有用的是引用Xcode生成的并放在Derived Data中(如果你配置了Xcode)。

答案 1 :(得分:0)

如果要构建两个单独的应用程序,则需要创建一个包含两个iOS应用程序项目和一个静态库项目的工作区。静态库应包含所有共享代码,并且两个iOS应用程序项目都应包含该库。