我创建了一个框架,其中插入了第二个框架,即所谓的“伞形框架”。当我在测试应用程序中插入框架时(嵌入式二进制文件和链接的框架和库,两者)无法构建应用程序,我收到以下错误:
ld: 找不到架构 arm64 的框架“embeddedInMyFramework”
clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
然后将该框架(embeddedInMyFramework)也添加到嵌入式二进制文件和链接的框架和库中,并尝试构建而不是工作正常。稍后从嵌入式二进制文件和链接的框架和库中删除该框架,并且仍然可以正常工作。有人可以帮我解决这个问题吗,我不确定第一次将框架添加到嵌入式二进制文件时会发生什么,以及如何解决这个问题(它能以某种方式工作而根本不添加到嵌入式二进制文件中吗)
最佳答案
我能够建立一个有效的 Umbrella 框架并写下我的方法。
第 5 步应删除您的链接器错误 ld: framework not found ..
设置:
一个基于 Swift 的“客户端”项目,将 Umbrella 框架作为依赖项
一个依赖于 Umbrella Framework 的动态框架(主要是 C++ 和 ObjC)
步骤:
- 将 Umbrella Framework 与其依赖的(子)Framework 链接起来,并确保在构建时将其复制到产品中。
2. 将依赖(子)框架的位置添加到 Umbrella Framework 项目的 Framework Search Paths
。
3. 在“客户端”项目中确保链接并嵌入 Umbrella Framework
4. 确保将 Umbrella Framework 复制到(客户端)应用程序包以避免 dyld: Library not loaded: @rpath/...
错误。
通常在 ...Build/Products/Debug-iphoneos/YOUR_CLIENT_APP.app
下的(客户端)应用程序现在应该在名为 Frameworks
的文件夹中包含您的 Umbrella Framework。
5. 在“客户端”项目中确保将 Umbrella Framework 的路径添加到 Framework Search Paths
。
如果 ld: framework not found '[Framework_Name]' for
体系结构 ...
错误仍然存在您还可以在此处添加(子)框架的路径。
关于ios - 伞架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41397746/