美文网首页
创建私有库所遇到的问题

创建私有库所遇到的问题

作者: DSA碼侬 | 来源:发表于2021-01-08 17:20 被阅读0次

    最近做私有库碰到的问题如下:

    1、imageWithContentsOfFile:参数要不要加@2x @3x

    图片(带@2x@3x)在bundle文件内,加载图片如下写加载不出数据:

    /// 加载工具类内部toolClassName
    + (NSBundle *)bundle {
        static NSBundle *bundle = nil;
        static dispatch_once_t onceToken;
        dispatch_once(&onceToken, ^{
           bundle = [NSBundle bundleWithPath:[[NSBundle bundleForClass:[self class]] pathForResource:@"bundle文件名" ofType:@"bundle"]];
        });
        return bundle;
    }
    
    + (nullable UIImage *)imageNamed:(NSString *)name {
        if ( 0 == name.length )
            return nil;
        NSString *path = [self.bundle pathForResource:name ofType:@"png"];
        UIImage *image = [UIImage imageWithContentsOfFile:path];
        image = [UIImage imageWithCGImage:image.CGImage scale:3.0 orientation:image.imageOrientation];
        return image;
    }
    

    调用:

    [toolClassName imageNamed:@"图片名不加@2x@3x"];
    

    结果:加载不出图片数据。
    修正:

    + (nullable UIImage *)imageNamed:(NSString *)name {
        if ( 0 == name.length )
            return nil;
        // @"/%@.png" == @"/%@"结果一样
        NSString *pngPath = [[self.bundle resourcePath] stringByAppendingString:[NSString stringWithFormat:@"/%@.png", name]];
        UIImage *image = [UIImage imageWithContentsOfFile:pngPath];
        
        image = [UIImage imageWithCGImage:image.CGImage scale:3.0 orientation:image.imageOrientation];
        return image;
    }
    

    成功!

    2、私有库A依赖另一个私有库B的时候,当库B文件结构发生改变的时候(比如图片bundle的加入),对A进行pod install之后,会发现A中的B并未发生相应的变化,解决办法:

    重新引入索引库即可:
    source 'http://xx.xxx.cn/xxx/xxx.git'  # B库
    

    3、报错信息:ERROR | [iOS] unknown: Encountered an unknown error (Unable to find a specification for 'xxx' depended upon bg 'xxxx')

    pod lib lint xxx --use-libraries
    pod spec lint xxx --use-libraries
    pod repo push 本地Spec文件 xxx.podspec xxx --use-libraries

    当执行以上代码的时候报错如下所示:

    error
    解决办法:
    在以上后面加上 --sources='私有库1索引地址, 私有库2索引地址,https://github.com/CocoaPods/Specs,等等) --use-libraries

    如下:
    pod lib lint --sources='http://xxx/zkhy-ios/xxxSpec.git, https://github.com/CocoaPods/Specs, http://x.cn/zkhy-ios/x.git' --use-libraries --allow-warnings

    '

    相关文章

      网友评论

          本文标题:创建私有库所遇到的问题

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