伞形框架

我创build了一个框架,其中插入了第二个框架,即所谓的“伞架”。 当我在testing应用程序中插入框架(embedded的二进制文件和链接的框架和库,都)不能构build应用程序,我得到以下错误:

ld: framework not found 'embeddedInMyFramework' for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

比在embedded式二进制文件和链接的框架和库中添加该框架(embeddedInMyFramework),并尝试构build比工作好。 后来从embedded式二进制文件,链接框架和库中移除这个框架,仍然正常工作。 有人可以帮助我,不知道当我第一次添加框架到embedded式二进制文件会发生什么,以及如何解决这个问题(它可以以某种方式工作,而无需添加到embedded式二进制文件)

我能够build立一个工作伞式框架,并写下我的方法。

第5步应该删除您的链接器错误ld: framework not found ..

build立:

  • 一个基于Swift的“客户端”项目,具有Umbrella Framework作为依赖

  • 一个dynamic框架(主要是C ++和ObjC),它是伞形框架的依赖

脚步:

  1. 将伞架与其依赖的(子)框架链接起来,并确保在构build时将其复制到产品中。

项目设置 - >建立阶段

2.将依赖(子)框架的位置添加到Umbrella Framework项目的Framework Search Paths

设置项目 - >生成设置

3.在“客户”项目中,确保链接并embedded伞形框架

一般设置客户端

4.确保将Umbrella Framework复制 (client-)应用程序包中以避免dyld: Library not loaded: @rpath/... errors。 (客户端)应用程序,通常在...Build/Products/Debug-iphoneos/YOUR_CLIENT_APP.app现在应该包含您的Umbrella Framework在一个名为Frameworks的文件夹中。

项目设置嵌入框架

1.在“client”项目中确保将Umbrella Framework的path添加到Framework Search Paths
如果ld: framework not found '[Framework_Name]' for architecture ...错误依然存在,你也可以在这里添加(子)Framework的path。

项目设置框架搜索路径

添加到embedded式库还会设置某些构build设置,从embedded式库中删除库时不会删除这些设置。

Framework Search Paths最有可能包含以前缺less的库的path。

如果不添加embedded式库,它将无法工作。 您可能需要使用一些依赖pipe理工具(如CocoaPods或Carthage)为您完成或多或less的工作。