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



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

我正在将这些静态库包括在作为框架的主项目中,并且我还需要将捆绑包包括在主项目中

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

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

因此,我的输出被打包为一个包含头文件和捆绑包的框架我的问题是:如何在运行时访问特定捆绑包?而不让客户复制每个捆绑包?

我能把所有捆绑包合并成一个捆绑包吗?我指的是包含许多束的束?如果是,如何使用子捆绑包中的文件?

非常感谢

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

我们可以像这样到达包裹中的任何包裹:

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中复制bundle,您可以从构建阶段脚本中完成,并设置复制的路径是您的主bundle。

相关内容