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

时间:2015-02-12 13:29:00

标签: ios frameworks static-libraries bundles

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

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

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

注意:我通过使用构建阶段脚本

复制它们,将子项目中的包添加到主输出文件夹中

因此我的输出打包为包含标头和包的框架 我的问题是: 如何在运行时访问特定的捆绑包?没有让客户复制每个包?

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

非常感谢

1 个答案:

答案 0 :(得分:2)

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

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

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

因此,当您想要访问名为myMainBundle.bundle的捆绑包中的任何捆绑包时,您可以获得如下所示的路径:

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

要在内部复制捆绑包,您可以从构建阶段脚本进行复制,并将复制路径设置为主要捆绑包。