美文网首页
打包问题

打包问题

作者: child_cool | 来源:发表于2021-05-19 15:28 被阅读0次

    打包 pod 中的 framework

    1、选中pod中的 CMSPaaS 库 中的Build settings 。
    2、修改Build settings页中的Build Active Architecture only 值为NO

    image

    3、修改Build settings页中的Link With Standard Libraries 值改为NO

    image

    4、修改Build settings页中的Mach-O Type 为Static Library

    image

    5、修改Build settings页中的Dead Code Stripping 为NO

    image

    6、设置Build Setting --> Excluded Architectures --> Release --> 添加上 arm64 (合并模拟器和真机时使用)

    image

    7、设置编译是生成 release framework

    image

    注意:如果是OC和swift 混编的, swift 资源不需要设置 public,只需要 XXXX-Swift.h 是 public 属性即可。OC的 需要暴露的.h 设置public ,不需要暴露的,不用设置public

    image

    8、 com+b 编译生成framework ( 选模拟器 生成模拟framework, 选真机生成真机framework)

    9、合并 模拟器包 和 真机包

    1、合并 XXXXX.framework/XXXXX 执行文件

    lipo -create 模拟器包路径/XXXXX.framework/XXXXX 真机包路径/XXXXX.framework/XXXXX -output 合并包路径/XXXXX.framework/XXXXX

    lipo -create /Users/***/Desktop/framework/moni/XXXXX.framework/XXXXX  /Users/***/Desktop/framework/zhenji/XXXXX.framework/XXXXX  -output /Users/***/Desktop/framework/hebing/XXXXX.framework/XXXXX   
    
    

    2、合并 模拟器的 XXXXX.swiftmodule 和 真机 XXXXX.swiftmodule 内部的文件

    copy 模拟器的 XXXXX.swiftmodule 和 真机 XXXXX.swiftmodule 内部的文件
    到合并的 XXXXX.framework 的 Modules 中的 XXXXX.swiftmodule

    image

    解决swift生成framework静态库让oc调用模拟器和真机都能通过的合并方法使用

    如果需要 XXXXX-swift.h 文件,在真机和模拟器下都可以使用时,可以采用以下方法,来解决swift生成framework静态库让oc程序调用模拟器和真机都能通过的合并方法
    就是在
    合并包的 headers 文件夹中,找到 XXXXX-swift.h 文件,然后打开文件,修改前两行代码

    // 模拟器
    #if 0
    #elif defined(__x86_64__) && __x86_64__
    // ....  以下代码省略
    
    
    // 真机
    #if 0
    #elif defined(__arm64__) && __arm64__
    // ....  以下代码省略
    
    

    修改这两行代码为

    #if defined(__x86_64__) && __x86_64__ || (__arm64__) && __arm64__
    
    

    即,可以解决。


    使用
    1、pod framework 中的依赖库

    image

    2、Build Setting 中 ,添加手动的 framework

    image

    3、Build Setting 中 ,找到Other Linker Flags,添加-ObjC

    image

    4.选择target(就是左边你的工程target)—— BuildSettings —— search Paths 下的 User Header Search Paths(如图所示)
    填写 “$(SRCROOT)/framework文件路径/XXXXX.framework/Headers”

    image

    5、使用样例

    image

    如果想要上传pod 库使用,请参考创建自己的 framework ,并上传 pod

    遇到问题

    1、合并真机和模拟framework 包时,报错
    have the same architectures (arm64) and can't be in the same fat output file

    设置Build Setting --> Excluded Architectures --> Release --> 添加上 arm64 (合并模拟器和真机时使用)

    image

    相关文章

      网友评论

          本文标题:打包问题

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