zoukankan      html  css  js  c++  java
  • iOS.静态库Framework制作流程

    1、新建工程,选择Framework

    2、删除自带同名的头文件,设置支持的最低系统

     

      创建一个类,用来测试

      

    3、TARGETS - Build Settings 设置相关选项

         Build Active Architecture Only 设置为NO的意思是当前打包的.framework支持所有的设备.否则打包时只能用当前版本的模拟器或真机运行

         Build Setting 搜索linking 设置Dead Code Stripping 为NO是编译选项优化,包瘦身,(可不改) Mach-O Type 选中StaticLibrary (静态库) Xcode默认是动态库

     

          点击目标工程 >> 选择你创建的Framework >> 点击工程设置 >> 做出如下修改
    
          Build Settings >> Dead Code Stripping >> 设置为NO
    
          Build Settings >> Strip Debug Symbol During Copy >> 全部设置为NO
    
          Build Settings >> Strip Style >> 设置为Non-Global Symbols
    
          Build Settings >>  Link With Standard Libraries >> 设置为 NO
    
          Build Settings >>  Mach-O Type >> Static Library   

     

    4、设置公开的文件TARGETS —> Build Phases

        

        将需要呈现给来的头文件,直接从Project拖到Public中. 不想呈现出来的.h文件不建议拖到Private中. 放在project中即可

     

    5、进行编译之前5个选项都设置为release模式 快捷键(command + shift + ,)

        

     6、分别在真机和模拟器状态下编译一下,会生成对应的文件夹,打开文件夹

        

    打开终端可以查看真机和模拟器的ASCC的架构信息(lipo -info ASCC路径),真机是armv7 arm64,模拟器是i386 x86_86.

    通过终端命令合并一下,让framework里的ASCC包含所有的架构信息

    sudo lipo -create 真机framework文件路径 模拟器framework文件路径 -output 要输出的文件路径。

    在桌面生成了新的ASCC文件

    注意:XCode12编译的模拟器静态库也支持了arm64,导致出现真机库和模拟器库不能合并的问题,添加如下操作

    然后把桌面的ASCC文件替换ASCC.framework里面的ASCC文件

    再把替换了的framework文件移到桌面,就可以把这个东西拖进项目里测试了

     

    END

  • 相关阅读:
    P、NP及NPC问题
    latex test3
    latex test2
    test
    整体二分
    bzoj2819 nim (树上带修改查询路径异或和)
    kmp模板题
    KM的三种写法比较
    电视转播
    树状数组处理区间查询和区间修改的问题
  • 原文地址:https://www.cnblogs.com/qq95230/p/13294874.html
Copyright © 2011-2022 走看看