我有以下情况,我正在尝试创建一个由子项目组成的框架,每个子项目都是一个静态库和一个包。
我将这些静态库包含在作为框架的主项目中,并且我还需要将bundle包含到主项目中
以下图片可以描述我的结构 https://drive.google.com/file/d/0B3tzx8whq3EvaS1JVmV0Mnl5Y3M/view?usp=sharing
注意:我通过使用构建阶段脚本
复制它们,将子项目中的包添加到主输出文件夹中因此我的输出打包为包含标头和包的框架 我的问题是: 如何在运行时访问特定的捆绑包?没有让客户复制每个包?
我可以将所有捆绑包合并为一个捆绑包吗?我的意思是包含许多捆绑包的捆绑包?如果是,如何使用子包中的文件?
非常感谢
答案 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"];
要在内部复制捆绑包,您可以从构建阶段脚本进行复制,并将复制路径设置为主要捆绑包。