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

问题描述 投票:15回答:2

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

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

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

我找到了几种方法

[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

ios xcode frameworks binary libraries
2个回答
19
投票

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

  • 将库与您要在其中使用的任何目标链接。您需要此库才能将框架导入代码中。
  • 仅将库嵌入包含的应用程序目标中。这实际上会将框架复制到您的应用程序捆绑包中。如果不嵌入它,则由于找不到框架,因此应用程序将在启动时崩溃。

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

对于Xcode界面:

  • 将框架拖入“常规”->嵌入式二进制文件会将框架添加到“使用库链接二进制文件”和“嵌入式框架”构建阶段中]]
  • 将框架拖入“常规”->链接的框架和库会将框架仅添加到“使用库链接二进制文件”构建阶段。
  • 一般下的视图似乎是从构建阶段选项卡填充的,因此您可以使用其中任何一个。

希望如此。

Edit:

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

0
投票

简而言之,如果我理解正确的话,

© www.soinside.com 2019 - 2024. All rights reserved.