静态库打包常见 问题
静态库打包Bitcode 问题
Bitcode是Xcode7之后引入的新特性,开启Bitcode后上传到应用商店的IPA文件包,里面会包含Bitcode编码。在苹果新增一款手机并CPU也是全新设计的时候,苹果后台服务器会使用这个App的Bitcode编译转化为新CPU上可执行的程序,以供新手机用户下载运行这个App,开启Bitcode后IPA上传审核文件包会增大,但是应用商店下载的应用安装包不会增大。
在静态库文件打包时 设置Build Setings 中的 OTHER_CFLAGS 属性设置为
-fembed-bitcode-marker
它的意思只是标记二进制文件中有bitcode,但是实际上没有内容,一般用于测试。
-fembed-bitcode则会生成bitcode的相关内容。
用Shell命令otool查看目标文件中是否包含bitcode段:
xxxxx$ otool -l test.o |grep bitcode
sectname __bitcode
sectname __bitcode
如果看到输出了2行sectname __bitcode,就是说明这静态库中的两个目标文件包含了bitcode.
如果没有出现则表示不包含Bitcode相关静态库
查看静态库:
lipo -info /Users/aiken/Desktop/....../IMTSDK.framework/IMTSDK【可执行文件地址】
合并静态库 :
输入lipo -create+空格+路径1+路径2+空格+-output+空格+新的.a路径。然后回车
--- XCFramework 的使用
合并Framework 输出 XCFramework :xcodebuild -create-xcframework
-framework /Users/aiken/Desktop/....../iphone/IMTSDK.framework ( 静态库地址 )
-framework /Users/aiken/Desktop/....../simu/IMTSDK.framework ( 静态库地址 )
-framework /Users/aiken/Desktop/....../mac/Releasemaccatalyst/IMTSDK.framework ( 静态库地址 )
-output /Users/aiken/Desktop/....../IMTSDK.xcframework (静态库输出地址)
XCFramework 导入异常报错
设置静态库引入参数

增加静态库类型 : 选择静态库TARGETS 中的静态库对象 在Architectures 中选择Other 增加armv7s arm64