首页 文章

什么是链接Xcode中的选项的库?

提问于
浏览
8

从Xcode 7开始,Xcode中有一些库/框架链接选项

转到项目选项卡中的应用程序 Target

General -> Embedded Binaries
General -> Link Frameworks and Libraries
Build Phases -> Target Dependencies
Build Phases -> Link Binary with Libraries

以下是我发现的几种方法

  • 使用Alamofire显示 Embedded Binaries 选项

Alamofire.framework作为目标依赖项,链接框架和嵌入式框架自动添加到复制文件构建阶段,这是构建模拟器和设备所需的全部内容 .

  • Creating your first iOS Framework显示将 Library.xcodeproj 添加到工作区,然后 Build Phases -> Link Binary with Libraries

  • Carthage Tutorial: Getting Started显示将 Library.framework 拖入 General -> Link Frameworks and Libraries . 似乎 General -> Link Frameworks and LibrariesBuild Phases -> Link Binary with Libraries 是相同的

  • Carthage似乎区分了iOS和OS X.

如果您正在为OS X构建:在应用程序目标的“常规”设置选项卡上,在“嵌入式二进制文件”部分中,将要使用的每个框架从磁盘上的Carthage / Build文件夹拖放 . 如果您正在为iOS,tvOS或watchOS构建:在应用程序目标的“常规”设置选项卡上,在“链接的框架和库”部分中,将要使用的每个框架从Carthage / Build文件夹拖放到磁盘 .

阅读Linking to a Library or Framework,我们知道这些选项是关于将框架链接到我们的应用程序/框架 .

但它们之间有什么区别?所有这些选项都是 catch all 吗?

1 回答

  • 12

    对于使用carthage构建的动态框架,我通常使用此设置:

    • 将库与您要使用它的任何目标链接 . 您需要这样才能在代码中导入框架 .

    • 仅在包含应用目标中嵌入库 . 这实际上会复制您的应用包中的框架 . 如果你没有找到.145204_t .

    只有app目标负责嵌入所有框架及其依赖项 . 这样,如果扩展程序和应用程序都使用框架,它将仅与应用程序一起分发 .

    对于Xcode界面:

    • 将框架拖入General - > Embedded Binaries将框架添加到"Link Binary With Libraries"和"Embed Frameworks"构建阶段

    • 将框架拖动到General - > Linked Frameworks and Libraries将仅将框架添加到"Link Binary With Libraries"构建阶段 .

    “常规”下的视图似乎从“构建阶段”选项卡中填充,因此您可以使用其中任何一个 .

    希望有道理 .

    Edit: 目标依赖项只是在构建当前目标之前需要构建的目标 . 因此,您的应用目标会在此处列出其扩展名,以便在您构建应用时构建扩展程序 .

相关问题