首页 文章

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

提问于
浏览
1

我有以下情况,我试图 Build 一个由子项目组成的框架,每个子项目都是一个静态库和一个包 .

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

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

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

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

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

非常感谢

1 回答

  • 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"];
    

    要在内部复制bundle,你可以从构建阶段脚本进行复制,并设置复制路径是你的主要包 .

相关问题