2015-06-17 64 views
0

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

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

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

+1

你看过这个吗? https://github.com/jverkoey/iOS-Framework – sbarow

+0

@sbarow到目前为止,这是一个很好的教程!我仍在审查它,现在我无法找到如何构建发布框架,你碰巧知道吗? –

+0

@sbarow对于延迟,我很抱歉。请张贴答复,以便我可以接受。谢谢! –

回答

1

我为我的公司分发这样一个图书馆。我基本上把.a文件(用lipo构建)与头文件放在一个文件夹中。然后,客户端需要将.a文件添加到构建阶段中的项目中,链接二进制文件与库。然后,他们应该使用项目相对路径添加到“头部搜索路径”的头部文件的路径。从我的自述:

过程的SDK添加到您的项目

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

3)添加以下项目的生成设置:

  • 搜索路径 - >库搜索路径: $ PROJECT_DIR/XXX/IOS //我有多个文件夹,每一个lib
  • 搜索路径 - >用户标题搜索路径:$ PROJECT_DIR/xxx
  • 链接 - >其他链接标志:-ObjC注意:如果你不能做到这一点,您的应用程序会崩溃在启动(如果它使用类别)

我用脂添加两个模拟器.a文件也甚至认为这不是官方认可的。正如其他人所说的那样,苹果公司对此不以为然,但对图书馆用户来说,使用不同的.a文件并不容易 - “官方”解决方案将为您编写一个自定义构建脚本。

+0

David H,感谢您的回复!我仍在研究sbarrow,这似乎避免了必须手动导入标题。但是,谢谢你 –