为iOS和模拟器创建一个静态库以进行分发

Aar*_*ron 7 static objective-c static-libraries ios

如果你为iOS创建一个静态库,你是否必须用它来分发头文件,还是有另一种方法让它工作?

目前我有一个my_lib.a文件用于设备和模拟器但是当我将它拖到另一个测试应用程序中使用它时,它说它找不到标题,并且我在代码中使用它的所有地方都是未申报.所以我认为我要么做错了,要么我还要用它发送相应的头文件.

我的流程背景:

我已经看到了两个为设备和模拟器创建静态库的指南.本网站上的一个:使用Xcode和SDK 4+构建胖静态库(设备+模拟器)

这里有一个:http://mark.aufflick.com/blog/2010/11/19/making-a-fat-static-library-for-ios-device-and-simulator

我用第二个网站试试看.如果我做得对,我也有点好奇.我刚进入Release-iphone(os |模拟器)文件夹,在ios one中找到了.a,在模拟器中找到了.o.

Ada*_*gan 3

简短的答案是肯定的,您必须将头文件与静态库一起打包。事实上,您必须将头文件与任何库(动态或静态)打包。库本身包含已编译的代码,但您仍然必须告诉编译器库中的标识符,以便编译器在编译代码时知道它们存在。

如果您愿意,您可以稍微小心地将静态库打包到静态框架中。您只需创建与动态框架相同的目录结构,并用 .a 文件代替 .dylib(或 .so)文件。框架包含标头目录,因此您可以将二进制文件和标头作为单个包进行分发,并且可以轻松地从框架导入标头,而不会弄乱“附加标头搜索路径”构建设置。