iOS 静态库 framework

402 阅读1分钟

关键词:静态库 static library framework xcframework

platform.png

一.定义

静态库: 在程序编译时链接的代码块, 链接时,静态库会被完整地复制到可执行文件中,若被多次使用就有多份拷贝. 目前有 2 种形式的静态库(.a 和 .framework).

二.区别

  • .a 格式

    • 纯二进制文件
    • 需配合 .h 文件才能使用
  • .framework 格式

    • 一种新的打包方式, 可理解为一个文件目录, 包含二进制文件, .h 文件, 资源文件等
    • 可直接使用, 便于管理

三.创建

  • 参数设置:

    • LINK_WITH_STANDARD_LIBRARIES = NO ,不链接标准库

    • MACH_O_TYPE = staticlib, 设置库的类型

  • 手动创建 framework

视频观看地址

create.gif

  • 命令创建 framework
    • simulator

      xcodebuild archive \
      
      -scheme hofa \
      
      -destination "generic/platform=iOS Simulator" \
      
      -configuration Release \
      
      -archivePath  "~/Desktop/tmp/universe/hofa-simulator.xcarchive" \
      
      SKIP_INSTALL=NO \
      
      BUILD_LIBRARY_FOR_DISTRIBUTION=YES
      
    • device

      xcodebuild archive \
      
      -scheme hofa \
      
      -destination "generic/platform=iOS" \
      
      -configuration Release \
      
      -archivePath  "~/Desktop/tmp/universe/hofa-iphoneos.xcarchive" \
      
      SKIP_INSTALL=NO \
      
      BUILD_LIBRARY_FOR_DISTRIBUTION=YES
      

四.合并

xcodebuild -create-xcframework \

-framework /Users/yaojian/Desktop/tmp/universe/hofa-iphoneos.xcarchive/Products/Library/Frameworks/hofa.framework \

-framework /Users/yaojian/Desktop/tmp/universe/hofa-simulator.xcarchive/Products/Library/Frameworks/hofa.framework \

-output /Users/yaojian/Desktop/tmp/universe/hofa.xcframework

视频观看地址

comcat.gif

四.如何使用

framework中有分类时需要设置 other link flags 为 -ObjC

视频观看地址

example.gif

代码地址