5

我创建了一个大型框架,打算在将要创建的几个应用程序中使用它,但是我不知道如何创建和导入静态库。我一直在关注本教程,因为它似乎是我能找到的最新的

http://www.icodeblog.com/2011/04/07/creating-static-libraries-for-ios/

该教程说在创建静态库后,将 .a 文件与 .h 文件一起复制到文件夹中;

Now, just drag this folder into the project and Xcode will set up 
all of the linking automagically.

但是,当我将该文件夹复制到 xCode 中时,该文件夹是蓝色的,我无法导入任何文件

然后我尝试了这个教程

http://www.blog.montgomerie.net/easy-xcode-static-library-subprojects-and-submodules

我设法让它像这样导入示例项目

   #import  <SampleSubproject/SampleSubproject.h>

但我无法导入库中的任何其他文件。

我一直在这个时间,我似乎找不到一个简单的简明教程来解释如何正确地实际添加静态库,似乎有很多不同的方法来做到这一点。有人可以告诉我最简单的方法来做到这一点。

另外我听说静态库不能在 iOS 模拟器中编译,这是真的吗?

提前致谢

4

2 回答 2

1

Xcode 4 不会让您将文件文件夹拖入。它只会失败。您应该首先在 Xcode 中创建一个组(Xcode 文件夹),然后您可以通过这种方式拖放文件。

另一种选择是将文件夹复制到项目根文件夹,然后将文件拖放到 Xcode 中并创建对文件的引用,而不是让 Xcode 将它们复制/粘贴到任何感觉的地方。

静态库不是为设备或模拟器编译的。它们在创建或构建时被预编译。引用已内置到您的项目中,但在您编译代码时不会重新构建库。

要考虑的另一件事是,Xcode 4 处理创建静态库的方式大不相同。在 Xcode 3 之前,一个静态库将被编译成 1 个大型通用静态库,可以同时处理设备和模拟器。现在,该默认操作未完成。您仍然可以通过构建脚本执行此操作,该脚本将按照他们需要的方式将它们打包在一起,但这不是默认操作。负责静态库的开发人员必须这样做。因此,如果您以这种方式从 3rd 方开发人员那里获取源代码,请确保您了解该库的构建方式。

于 2013-01-21T20:31:28.893 回答
1

我终于找到了一个网站,它解释了如何通过使用从终端运行的脚本组合这两个库来为 IOS 设备和模拟器创建一个通用库。

http://www.nearinfinity.com/blogs/tyler_vernon/2012/07/17/creating-and-using-static-libraries-for-iphone-using-xcode-4.3.html

希望能帮助任何其他正在做噩梦的人。令人惊讶的是,Apple 是如何创造出本应如此简单、如此困难的东西的!

于 2013-01-22T08:06:06.993 回答