美文网首页iOS组件化
打造你的远程私有库(资源依赖)

打造你的远程私有库(资源依赖)

作者: MagicCare | 来源:发表于2017-06-30 23:32 被阅读27次

    我们在使用远程私有库的时候必然会遇到资源依赖的问题,主要就是我们的xib或者StoryBoard这类资源,因为我们的功能组件中有可能会涉及到,所以我们今天就来讲讲如何来做,这里我们以我们的主骨架组件化为例。

    • 首先我们来回顾一下整个项目的主骨架


    • 我们在remoteLiba里面创建一个TZSoundMain的模板库


    • 我们现在测试工程里面将我们的代码测试好,将组骨架的代码拖到Classes文件夹下面


    • 然后在测试工程里面pod install安装代码,并且把宿主工程中AppDelegate里面的代码复制过来,还有测试控制器一并拖过来

    • 但是项目中还是会报错,一路追寻下来我们发现原来结果是少了基础组件category中的内容
    • 此时应该去修改.spec文件给我们添加基础组件的依赖,因为之前我们已经将基础组件划分了分支,我们在这里需要的仅仅是Category分支


    • 我们发现这里出现了报错提示,提示我们找不到TZSoundBase/Category,这里我们需要添加源


    • 现在编译就没有问题了,运行的时候居然又崩了,我们看看报错提示


      15.png
    • 原来是因为TZMiddleView里面的xib文件加载出错了,因为此时xib文件并不在我们的MainBundle里面

      我们将MainBundle打开看看里面的内容


    • 我们发现xib文件在Frameworks文件夹下面的TZSoundMain.Framework里面


    • 进到TZMiddeleView中修改加载xib文件的包路径方法+ (instancetype)middleView中

     //加载资源所在的bundle位置
        NSBundle *currentBundle = [NSBundle bundleForClass:[self class]];
        TZMiddleView *middleView = [[currentBundle loadNibNamed:@"TZMiddleView" owner:nil options:nil] firstObject];
    
    • 然后再来跑一下测试工程,看看bug有没有解决



      我们发现工程已经跑起来了和我们的宿主工程几乎相差无几,唯一不同的就是缺少图片,但是由于我们的资源都在宿主工程而没有在我们的组件当中,所以所有的图片都无法加载,我们其实应该将我们的图片资源都加载到我们的组件当中,否则以后别人使用我们的组件还得单独下载图片,这违背了我们的初衷。

      那么下次我们将接着给大家来讲讲如何解决图片依赖的问题。

    相关文章

      网友评论

        本文标题:打造你的远程私有库(资源依赖)

        本文链接:https://www.haomeiwen.com/subject/nroicxtx.html