关键词:静态库 static library framework xcframework
一.定义
静态库: 在程序编译时链接的代码块, 链接时,静态库会被完整地复制到可执行文件中,若被多次使用就有多份拷贝. 目前有 2 种形式的静态库(.a 和 .framework).
二.区别
-
.a 格式
- 纯二进制文件
- 需配合 .h 文件才能使用
-
.framework 格式
- 一种新的打包方式, 可理解为一个文件目录, 包含二进制文件, .h 文件, 资源文件等
- 可直接使用, 便于管理
三.创建
-
参数设置:
-
LINK_WITH_STANDARD_LIBRARIES = NO ,不链接标准库
-
MACH_O_TYPE = staticlib, 设置库的类型
-
-
手动创建 framework
- 命令创建 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
四.如何使用
framework中有分类时需要设置 other link flags 为 -ObjC