在Xcode 6中部署静态库

时间:2015-06-17 16:16:23

标签: ios xcode

我想部署一个我在Xcode 6中编写的静态库。我已经设法将库编译成.a文件。现在我想在另一个项目中使用它。另请注意,包含库项目不是一个选项,因为此库应该以二进制文件形式分发。

我还设法将.a文件导入到一个新项目中,但我不确定找到头文件的最佳方法是什么。我应该将它们复制到系统文件夹吗?我应该只链接到框架的(已下载)文件夹吗?我应该直接在项目中导入标题吗?由于框架是用于分发的,我认为理想情况下我会将它们复制到系统文件夹中。

最后,我已经读过如果我希望框架与iOS和模拟器兼容,我需要构建两个不同的版本。这是真的?它不能分布在同一个二进制文件中吗?

1 个答案:

答案 0 :(得分:1)

我为我的公司分发这样的图书馆。我基本上把.a文件(用lipo构建)和标题放在一个文件夹中。然后,客户端需要在Build阶段,Link Binary With Libraries中将.a文件添加到他们的项目中。然后,他们应该使用"用户标题搜索路径"的项目相对路径添加头文件的路径。从我的自述文件:

  

将SDK添加到项目的过程

     

1)将xxx文件夹复制到app文件夹,其中包含   " .xcodeproj"项目文件,然后将目录添加到项目中,   但不要将其添加到任何目标(取消选中该复选框)。       2)添加适当的库(iOS 6.0或7.0)文件夹,转到目标的构建阶段选项卡,链接二进制文件库,点击   在" +"上,然后导航到相应的文件夹并选择   libXXX.a

     

3)将以下内容添加到项目的构建设置:

     
      
  • 搜寻路径 - >图书馆搜索路径:   $ PROJECT_DIR / xxx / ios //我有多个文件夹,每个文件夹都有一个lib
  •   
  • 搜寻路径 - >用户标题搜索路径:$ PROJECT_DIR / xxx
  •   
  • 链接 - >其他链接标志:-ObjC注意:如果您没有这样做,您的应用程序将在启动时崩溃(如果它使用类别)
  •   

我使用lipo同时添加模拟器.a文件 - 甚至认为这不是官方认可的。正如其他人所说的那样,Apple对此表示不满,但却没有为您的图书馆用户提供使用不同.a文件的简便方法 - "官方"解决方案是为您编写自定义构建脚本。