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

  • 相关阅读:
    【BZOJ4868】期末考试 [三分][贪心]
    【BZOJ4880】排名的战争 [暴力]
    【BZOJ1449&&2895】球队预算 [费用流]
    【BZOJ1221】【HNOI2001】软件开发 [费用流]
    【BZOJ4837】LRU算法 [模拟]
    Leetcode题解(30)
    Leetcode题解(29)
    Leetcode题解(28)
    Leetcode题解(27)
    Leetcode题解(26)
  • 原文地址:https://www.cnblogs.com/qq95230/p/13294874.html
Copyright © 2011-2022 走看看