在Xcode 4中添加“.a” - 库

时间:2011-11-08 09:21:15

标签: iphone ios xcode4

我已经阅读了很多关于如何将现有框架添加到Xcode 4的提示,例如: http://www.thinketg.com/Company/Blogs/11-03-20/Xcode_4_Tips_Adding_frameworks_to_your_project.aspx

但我的问题很特别。

我想添加一个具有以下结构的库:

  • 构建 - > Debug-iphoneos - > library.a
  • 构建 - > Debug-iphonesimulator - > library.a
  • 构建 - >发布 - iphoneos - > library.a
  • 构建 - >发布 - iphonesimulator - > library.a

如果我想构建我的项目以在模拟器上测试它,我必须将库从“Debug-iphonesimulator”文件夹复制到我的项目中。如果我想在设备上测试它,我必须从“Release-iphoneos”文件夹中复制该库。那非常麻烦!

这是将所有图书馆整合到我的项目中的好方法吗?

非常感谢!

2 个答案:

答案 0 :(得分:1)

第一步是使用lipo命令

创建通用静态库
lipo -create "${PROJECT_DIR}/build/${BUILD_STYLE}-iphoneos/libYourLib.a" "${PROJECT_DIR}/build/${BUILD_STYLE}-iphonesimulator/libYourLib.a" -output "${PROJECT_DIR}/build/libYourLib-${BUILD_STYLE}.a"

之后创建2个不同的目标(用于调试和发布)并在每个目标中添加正确的.a。

答案 1 :(得分:0)

还有另一种简单的方法。在其他链接器标志中提供.a文件的路径与相应的目标。

假设您正在为设备构建应用程序,它应链接到.a的设备版本,当您为模拟器构建应用程序时,它应链接到.a上的模拟器版本

以下是你应该如何提供另一个标志:

../../../testApp/DerivedData/testApp/build/Products/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/testApp.a