我使用以下教程构建了一个框架.
我也有这个框架.
我正在尝试在我的内部实现第二个框架,从我在Apple文档中读到的结果框架被称为"伞框架".
我在框架中使用拖放添加了第二个框架,并验证它是否在"Link Binary With Libraries"中.
在我尝试在我的框架的一个类中进行下一次导入之后:
#import <CrashReporter/CrashReporter.h>
Run Code Online (Sandbox Code Playgroud)
我收到错误,因为导入的框架不可见.
另外我看过stackoverflow帖子: 如何在iOS SDK中创建一个伞形框架?
有没有人试图为iOS提取PLCrashReporter类并将其集成到一个项目中?
你可以在这里找到我的尝试.
我想分发框架A.框架A依赖于框架B.我希望我的框架的用户只需要包含框架A,但仍然具有对框架B的编程访问权限.
Apple使用"Umbrella Frameworks"的概念一直这样做,但是文档中有这个主题:
不要创建伞框架
虽然可以使用Xcode创建伞形框架,但对大多数开发人员来说这样做是不必要的,不建议这样做.Apple使用伞形框架来掩盖操作系统中库之间的一些相互依赖关系.几乎在所有情况下,您都应该能够将代码包含在单个标准框架包中.或者,如果您的代码足够模块化,您可以创建多个框架,但在这种情况下,模块之间的依赖关系将是最小的或不存在的,并且不应该保证为它们创建保护伞.
为什么这种做法不鼓励?是什么使它成为Apple相互依赖框架问题的良好解决方案,而不是我的?
我已经创建了一个框架,其中插入了第二个框架,即所谓的"伞形框架".当我在测试应用程序中插入框架(嵌入式二进制文件和链接的框架和库,两者)都无法构建应用程序时,我收到以下错误:
ld: framework not found 'embeddedInMyFramework' for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
比在嵌入式二进制文件和链接框架和库中添加该框架(embeddedInMyFramework)并尝试构建比工作正常.稍后从嵌入式二进制文件和链接的框架和库中删除该框架,仍然可以正常工作.有人可以帮我解决这个问题,不确定当我第一次向嵌入式二进制文件添加框架时会发生什么,以及如何解决这个问题(如果不添加嵌入式二进制文件,它可以以某种方式工作)