如何合并模拟器和真机SDK / Merge device fra
2019-09-30 本文已影响0人
Grabin
如何合并模拟器和真机SDK
/ Merge device framework and simulator to "fat" framework
查看SDK支持的格式
lipo -info $(可执行文件路径)
结果是i386 x86_64
,这是模拟器版本。

结果是armv7 armv64
,这是真机版本。

那么如何合并这两个,让模拟器和真机都能够使用呢?
还是使用lipo
命令:
lipo -create -output $(要保存新生成可执行文件的地址) $(模拟器可执行文件地址) $(真机可执行文件地址)

-
将生成的文件替换真机framework里面的可执行文件
image.png
-
将模拟器framework里面的xx.swiftmodule里面的文件合并到真机framework对应的文件中。(复制粘贴)

- 修改header文件
修改xx-Swift.h
文件
a. 将下面这行代码:
#elif defined(__arm64__) && __arm64__
改成
#elif (defined(__arm64__) && __arm64__) || (defined(__x86_64__) && __x86_64__)
b. 将下面这行代码:
#elif defined(__ARM_ARCH_7A__) && __ARM_ARCH_7A__
改成
#elif (defined(__ARM_ARCH_7A__) && __ARM_ARCH_7A__) || (defined(__i386__) && __i386__)