美文网首页
如何用多Target的方式为SDK创建Demo

如何用多Target的方式为SDK创建Demo

作者: LucXion | 来源:发表于2021-04-28 16:29 被阅读0次

    第一步:项目架构

    1. 创建一个全新的工程
    2. 创建SDK的target,Xcode会将SDK与Demo关联

    创建SDK.png
    关联.png

    可以删除多余的TestTarget,最终保留两个目标target就可以了


    目标.png

    第二步:设置关键属性

    1. SDK支持的最低iOS版本

    搜索关键字ios dep.png
    2. SDK支持的CPU指令集
    Architectures.png
    3. SDK是否只支持当前设备架构
    搜索关键字build acti.png
    4. SDK编译出来的名称
    product name.png
    5. SDK编译出来的静态库类型
    mach_o.png
    6. SDK对外披露头文件
    头文件.png

    第三步:使用

    1. 引入项目
    SDKDemo中的使用:
    1>. 在SDK内新建文件
    2>. 在SDKDemo内导入头文件#import <SDK/Person.h>,即可开始调试,不需要单独编译静态库,也不需要设置对外披露的头文件

    在其他项目中使用:
    1.> 需要做如下设置,否则会运行会崩溃并提示找不到SDK的资源文件


    image.png

    2. SDK中引用有C++文件报错

    如果静态库中采用ObjectC++实现,或者静态库使用C/C++写的,在调用的时候可能出错,因此需要您保证您工程中至少有一个.mm后缀的源文件(您可以将任意一个.m后缀的文件改名为.mm

    3. SDK中使用到了Category

    如果framework中使用到了Category 那么在使用framework的工程中要设置 Build Settings中的Other Link Flag 为 -ObjC或者-all_load

    第四步:Demo添加第三方依赖库

    假设库文件都添加到Frameworks文件中
    在demo中修改对应的patch search
    Framework Search Paths ->$(PROJECT_DIR)/Product/Frameworks

    在SDK中也修改对应的设置为:
    $(SRCROOT)/Frameworks

    Bundle资源文件

    创建

    CreatBundle.png

    添加资源

    资源添加.png

    设置

    搜索关键字hidpi.png

    COMBINE_HIDPI_IMAGES 或 Combine High Resolution Artwork 改为NO,如果为YES,那么在最终打包的Bundle中,@2x和@3x不同分辨率的图片会被合成成tiff格式 。导致使用图片名称无法访问

    Enable Bitcode :如果能搜索到这一项那么就把其值设置为NO。Bundle是不能使用Bitcode的

    加入SDK
    将bundle拖入SDK

    NSBundle *bundle = [NSBundle bundleWithPath:[[NSBundle bundleForClass:[self class]] pathForResource:@"StaticSDKResource" ofType:@"bundle"]];
    UIImage *imgd = [UIImage imageWithContentsOfFile:[bundle pathForResource:@"line_bg_image@3x" ofType:@"png"]];
    // 注意,图片不会自适应屏幕,要自己写方法
    

    混编

    将一个完整的 .m/.h
    拖入Swift项目,即可自动生成桥接文件,将需要使用的OC头文件在桥接文件中通过OC的头文件引入方式引入,即可使用

    常见报错

    如果提示 .xcodeproj Building for iOS Simulator, but the linked and embedded framework 'xx.framework' was built for iOS + iOS Simulator.

    设置 build ->setting -> Validata Workspace -> YES

    相关文章

      网友评论

          本文标题:如何用多Target的方式为SDK创建Demo

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