XCode项目:如何将子项目构建为静态库?

3
我需要将子项目构建为静态库,但我不太确定该如何操作,请问我应该:
  1. 一个一个编译所有的子项目(或者只编译主项目一次?)
  2. 在产品文件夹中查找子项目的 .a 文件,并将其复制到主项目中
  3. 将所有子项目的 .h 文件复制到主项目的某个文件夹中
  4. 删除所有的子项目
上述步骤正确吗?
另外,我需要以发布(或调试)模式分别对模拟器和设备进行编译吗?
谢谢!
2个回答

5
不,你不需要做任何这样的事情,因为Xcode会为你完成所有操作...基本上,只需将库项目拖入其中,设置依赖项即可完成:有关详细信息,请参见this page

0

我在我的项目中使用静态库。你提到的步骤都是正确的,除了删除所有子项目?为什么你需要子项目呢?它们理想上应该是独立编译的库,只需将 .a 文件和主头文件添加到主项目中即可。如果这样做,当你的静态库发生变化时,你不需要更新你的主项目。你只需要更新 .a 文件或 .h 文件(如果它们发生了变化)......是的,当你想要提交你的 App 到 App Store 时,你需要以发布模式编译静态库。模拟器和设备并不重要,因为它不会运行。重要的是你编译的 iOS 目标和基础 SDK。


2
子项目允许您调整库并使其自动重新编译。这些是静态库,因此您无论如何都必须重新编译整个项目以更新它们(它们将最终出现在二进制文件中,而不是像动态库那样分开)。 - borrrden
当你有很多库时,这可能会很有用。我只有一个静态库,我像我提到的那样维护它,我觉得很容易。我的方法有什么问题吗?我看了你发的链接,有些新东西我不知道。如果有帮助,我一定会采用那种方法。谢谢。 - Paresh Masani
没什么问题,如果我理解正确的话,它只是增加了一些额外的步骤。 - borrrden
是的,你也许是对的,但我不知道其他将库作为子项目附加的方法,就像three20那样。我做了很多研究,但没有找到解决方法,所以只好自己发布了一篇文章。我认为你分享的链接会创建与three20库及其子项目相同的项目层次结构。我的理解正确吗? - Paresh Masani
谢谢,但是我在哪里可以找到所有子项目的头文件.h? - hzxu
显示剩余2条评论

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