iOS framework封装踩坑

1、用xcworkspace创建和管理多个项目可以实现s d k封装
2、在项目里点击加号也可以创建framework,以上两个方法都能打包sdk
3、如果sdk里引用了其他sdk,添加的时候不勾选add to targets
4、fremawork就是sdk,暂时这样考虑,pch文件也可以使用
5、boundle文件编译到framework中,图片是可以访问到,但是打包的时候提示报错,等有时间再看看怎么方便地读取framework中的图片,省的放2个文件
6、引入cnplayer sdk时候报错,删掉创建framework文件的默认.h文件就可以了
7、一直提炼代码,等代码很完美的时候,再封包也行
8、控制暴露接口的.h,控制开源目录
9、目录控制注意依赖关系,要不然pod lib lint不会通过(踩坑了)
10、编译不通过,把.h头文件拖到public下面就可以
11、引用framework图片宏定义

//bundle文件
#define  bundleImg(imgName)\
({\
    NSBundle *framework =[NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"ZDAdSDK" ofType:@"framework" inDirectory:@"Frameworks"]];\
    NSBundle *bundle = [NSBundle bundleWithPath:[framework pathForResource:@"ZDAd" ofType:@"bundle"]];\
    NSString *path =[NSString stringWithFormat:@"%@/%@",bundle.resourcePath, imgName];\
    (path);\
})\
//car文件
#define  carImg(imgName)\
({\
    NSString *path = [[NSBundle mainBundle] pathForResource:@"ZDAdSDK" ofType:@"framework" inDirectory:@"Frameworks"];\
    NSBundle *bundle = [NSBundle bundleWithPath:path];\
    UIImage *img = [UIImage imageNamed:imgName inBundle:bundle compatibleWithTraitCollection:nil];\
    (img);\
})\

调用:

    [cloBtn setImage:[UIImage imageNamed:bundleImg(@"guanbi")] forState:UIControlStateNormal];
    
    [cloBtn setImage:carImg(@"close") forState:UIControlStateNormal];

你可能感兴趣的:(iOS framework封装踩坑)