将子包包含到主包中的正确方法是什么 iOS

What is the right way to include sub bundles into main bundle iOS

我有以下情况,我正在尝试制作一个由子项目组成的框架,每个子项目是一个静态库和一个包。

我正在将那些静态库包含到作为框架的主项目中,并且我还需要将包包含到主项目中

下图可以描述我的结构 https://drive.google.com/file/d/0B3tzx8whq3EvaS1JVmV0Mnl5Y3M/view?usp=sharing

注意:我通过使用构建阶段脚本将子项目中的包添加到主输出文件夹中

所以我的输出被打包成一个包含 headers 和包的框架 我的问题是: 如何在 运行 时间内访问特定的包?没有让客户复制每个包?

我可以将所有捆绑包合并为一个捆绑包吗?我的意思是包含许多捆绑包的捆绑包?如果是,如何使用子包中的文件?

非常感谢

我搜索了很多并找到了解决方案,首先你可以在你的包中包含包,这样用户就不必复制所有的包,只需要复制主要的包。

我们可以像这样访问捆绑包中的任何捆绑包:

NSBundle *mainBundle = [NSBundle bundleForClass:[self class]];
NSBundle *bundle = [NSBundle bundleWithURL:[mainBundle URLForResource:@"myMainBundle" withExtension:@"bundle"]];

因此,当您想要访问名为 myMainBundle.bundle 的捆绑包中的任何捆绑包时,您可以像这样获取其路径:

NSString *subBundlePath =[bundle pathForResource:@"subBundle" ofType:@"bundle"];

要在 budle 中复制包,您可以从构建阶段脚本执行并将要复制的路径设置为您的主包。