伞形框架
我创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),它是伞形框架的依赖
脚步:
- 将伞架与其依赖的(子)框架链接起来,并确保在构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的工作。