美文网首页
iOS架构之路08 -- .framework静态库依赖(第三方

iOS架构之路08 -- .framework静态库依赖(第三方

作者: YanZi_33 | 来源:发表于2021-09-16 11:52 被阅读0次
    • .framework静态库依赖第三方开源库,注意这里的开源库是直接将代码拉进工程中,没有采用cocoapods工具;
    • 新建.framework静态库工程,命名为YanZiSDK,再创建Bundle,命名为YanZiSDKBundle,相关配置见 iOS架构之路04 -- 静态库.framwork的手动,脚本,资源文件打包
    • YanZiSDK依赖图片下载框架库SDWebImage以及第三方SDKYYImgSDK.framework,将两者分别拖进文件夹ThirdLibOtherSDK,注意不能勾选Add to targets,如下所示:
      Snip20210913_114.png
    • 工程结构如下:
    image.png
    • 其中SFViewController.m文件中,引用SDWebImage第三方库,代码如下:
    #import "SFViewController.h"
    #import "UIImageView+WebCache.h"
    
    @interface SFViewController ()
    
    @property(nonatomic,strong)UIImageView *im;
    
    @end
    
    @implementation SFViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        self.view.backgroundColor = [UIColor whiteColor];
        
        NSBundle *bundle = [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"MyCategoryBundle" ofType:@"bundle"]];
        NSString *path = [[bundle resourcePath] stringByAppendingPathComponent:@"sf_navBack_hl"];
        
        self.im = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
        self.im.image = [UIImage imageWithContentsOfFile:path];
        [self.view addSubview:self.im];
        
        NSString *urlString = @"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fn.sinaimg.cn%2Fsinacn%2Fw640h736%2F20180129%2F1c2d-fyqzcxh8593608.jpg&refer=http%3A%2F%2Fn.sinaimg.cn&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1634115541&t=a21cc2b149a3633837aba436cc62fe38";
        [self.im sd_setImageWithURL:[NSURL URLWithString:urlString]];
    }
    
    @end
    
    • 然后在真机,模拟器下分别进行编译,最后将得到的YanZiSDK文件进行合并,然后导出真机编译的YanZiSDK.framework,将其中的YanZiSDK文件替换为合并的YanZiSDK文件,在桌面上创建YanZiSDK文件夹,然后将YanZiSDK.framework与YanZiSDKBundle拷贝进去;

    • 新建一个Demo工程命名为YanZiProject,将YanZiSDK文件夹直接拖入工程中,然后将文件夹ThirdLibOtherSDK拖入工程,注意要勾选Add to targets

      Snip20210914_116.png
    • 工程结构如下:

    image.png
    • 工程配置:
    image.png
    • Build Setting -> Enable Bitcode 设置为NO;

    • 最后,引用YanZiSDK,运行工程,如下:

    image.png
    • 注意⚠️:YanZiSDK.framework依赖于第三方SDWebImageYYImgSDK.framework,但不会打包进入YanZiSDK.framework内部,第三方SDWebImageYYImgSDK.framework是主工程YanZiProject引入的,会打包进入主工程YanZiProject中;

    相关文章

      网友评论

          本文标题:iOS架构之路08 -- .framework静态库依赖(第三方

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