这是将静态库包含在iPhone或iPad应用程序中的最佳方法吗?
我可以选择
ar
实用程序构建库文件,然后将其作为框架添加到项目中第一种方法似乎更简单,因为我不关心管理我想要包含的库的所有特定设置但是如何为iPhone和iPad创建库并允许xcode在链接时使用正确的库?
第二种方法似乎更复杂,因为xcode会注意编译我的应用程序和库(我想有不同的设置)然后我该怎么办?我可以轻松添加lib的源代码,但是我必须包含make脚本以允许xcode使用它们以正确的方式构建。
有关如何进行的任何建议?我想要包含的库是 libssh 。 (我知道这个库当然已经在iPhone上成功编译并试用了)
提前致谢。
答案 0 :(得分:1)
我会选择第一种方法。
您应该构建两个不同版本的库,一个用于iPhone,另一个用于iPad。这些必须是包含不同架构的胖库(用于iPhone 3G的armv6,用于iPhone 3GS的armv7,用于iPhone模拟器的i386,用于iPad的另一个用于armv7和i386)。
基本上你为iPhone构建了三个不同的版本,然后使用lipo工具将它们合并在一个胖文件中。
然后,您再次为iPad构建两个不同版本,并使用lipo将它们合并在一起。请注意,您不能在iPad上重复使用最初为iPhone编译的armv7和i386版本,因为您需要使用属于两个不同SDK的编译器来构建它们(iPhone为3.1,iPad为3.2)。
我不确定lipo是否允许您合并到单个文件中两个armv7或两个i386版本的库而不会抱怨。您可能想尝试这个,因为在这种情况下,您可以在整个过程结束时只提供一个胖库。