【问题标题】:Creating a Static Library in Xcode 5在 Xcode 5 中创建静态库
【发布时间】:2014-09-28 02:33:14
【问题描述】:

大家好,我在 xcode 5 中创建静态库时遇到了一些麻烦。大多数教程都是在 xcode 4 中完成的,并且感谢苹果非常易于使用的 gui,这使它变得如此简单让用户从一个程序过渡到另一个程序,所以我无法制作并使用它。 所以我知道第一步是制作 cocoa ios 静态库项目,然后在库中添加你想要的头文件和实现文件(.h 和 .m)。 接下来,您应该设置希望用户可以访问的头文件。是否可以以导入一个头文件同时导入所有其他头文件的方式设置库?其他头文件是否需要公开才能执行此操作? 我的主要问题是如何实际设置我想要公开/私有的类,最后如何将这个库实现到我的一个应用程序中? 一个 HelloWorldLibrary 的例子会很棒!


使用链接后:github.com/jverkoey/iOS-Framework

我现在在定位框架时遇到问题:

ld: warning: directory not found for option '-L/Users/Harry/Library/Developer/Xcode/DerivedData/SampleFramework-efznryzmlxnimoaaazjfbqjirzxq/Build/Products/Debug-iphoneos'
ld: framework not found SampleSubproject

【问题讨论】:

  • 如果所有其他标题将从一个公共标题导入 - 您不需要将它们设为公共
  • 感谢 rdurand 的链接。我要试一试,我会把我的结果发回这里
  • 我现在在使用我的测试框架时遇到了问题。 ld: 未找到框架 SampleFramework

标签: ios objective-c xcode cocoa frameworks


【解决方案1】:

有创建静态库的步骤。

我没有在 xCode 5 中创建,但在 4.x 中创建..

  • 新建工程,选择iOS下的Cocoa touch静态库。
  • 将类文件/资源​​添加到您创建的项目中。
  • 将安装构建产品位置设置为 $(BUILT_PRODUCTS_DIR)
  • 在构建阶段复制标头
  • 在 Target Membership 中将标头设置为 Public
  • 为存档/分析而构建
  • 从派生数据中获得(发布 iphonesimulator、Release-iphoneos)
  • 现在使用
  • 合并两个 .a 文件

来自终端的 lipo 命令,例如 lipo -create libForDevice.a libForSimulator.a - 输出 UniversalLib.a

  • 现在将此库复制到您的主 xCode 项目并包含您的特定类。

您可以在here找到更多详细信息

问候。

【讨论】:

  • 为什么要手动使用lipo?我不相信它是。如果您创建一个 Xcode 工作区并使静态库项目成为应用程序项目的依赖项,那么它将始终为正确的架构构建并且不涉及复制。
  • 可以使用聚合。 xCode 将一次构建多个目标,包括使用 Aggregate 的命令行脚本。并且是必需的,因为制作静态库(设备/模拟器)的通用构建对于您的信息,我提供基本提示,以便我的朋友可以轻松实现它。 ..
  • github.com/jverkoey/iOS-Framework 演示了创建不需要在终端 iKing 中使用 lipo 的聚合目标! :)
  • @koplocal : jverkoey 的项目设置在构建后脚本中使用 lipo 命令;)
猜你喜欢
  • 1970-01-01
  • 2011-11-18
  • 2011-12-07
  • 1970-01-01
  • 2012-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-06
相关资源
最近更新 更多