静态库打包常见 问题

2020-03-03  本文已影响0人  Mr_滑

静态库打包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 导入异常报错

设置静态库引入参数


截屏2020-06-15 下午4.38.41 1.png

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

上一篇 下一篇

猜你喜欢

热点阅读