足球盘口软件
当前位置: 足球盘口软件 > 前端 >
iOS合并静态库文件,真机库和模拟器库的合并

iOS合并静态库文件,ios合并静态

   具体命令如下(在控制台输入如下命令):

lipo -create 其中一个要合并的静态库 另一个要合并的静态库 -output 合并后的静态库 

具体命令如下(在控制台输入如下命令): lipo -create 其中一个要合并的静态库 另一个要合并的静态库 -...

   具体命令如下(在控制台输入如下命令):

        封装代码为动/静态库,编译会产生两个库文件,一个真机运行的,一个模拟器运行的。两者互不兼容,若真机运行使用模拟器的库或者模拟器运行使用的真机的库,都会报类似的错:_OBJC_CLASS_$_某文件名", referenced from:,但如果每次在真机和模拟器运行之间切换,总要先替换库,就会很麻烦。所以下面将两种库的合并方法总结一下。

lipo -create 其中一个要合并的静态库 另一个要合并的静态库 -output 合并后的静态库 

.a合并

        将真机库和模拟器库放在同一个文件夹下,在这之前需要先将两个库重命名,否则会覆盖。

        打开终端,cd到该文件夹目录下。通过下面的命令合并

        lipo[空格]-create[空格] [真机静态库文件名][空格] [模拟器静态库文件名][空格]-output[空格] [合并后的文件名]

图片 1

终端命令示意图

        合并后使用 lipo -info 命令检查库文件是否合并成功

检查命令:

图片 2

检查命令示意图

Architectures in the fat file: /Users/***/Desktop/XXX/libXXXX.a are: armv7 armv7s i386 x86_64

(其中armv7、armv7s为真机架构, i386为模拟器)。

        回车后,终端出现这个则表示合并成功。

.framework合并

        .framework合并方法和.a合并方法相同,只不过.framework合并的是.framework内同名的那个文件。

图片 3

需要合成的是.framework内同名的那个文件

        先把两个库放在同一个文件夹下,放之前要先改成不同的名字。打开终端,cd到该文件夹目录下(我放在了桌面上,所以cd到Desktop文件夹下)。同样通过下面的命令合并

lipo[空格]-create[空格] [真机静态库文件名][空格] [模拟器静态库文件名][空格]-output[空格] [合并后的文件名]

图片 4

合并命令示意图

        桌面上就会多出一个叫final的库

图片 5

生成的合并后的final库

        我们使用lipo -info 检查一下是否同时支持模拟器和真机,输入lipo -info 把库文件直接拖入终端,回车

图片 6

检查是否合成成功的命令

        该库文件支持armv7 i386 x86_64 arm64,合成成功。

        之后我们将合并得到的final文件改回原来的名字(例如我这里应该改成IE),替换任一.framework下的IE文件, 该.framework就是我们最终需要的.framework文件了。

以上合成方法是参考下列两链接总结出来的:

彻底解决_OBJC_CLASS_$_某文件名", referenced from:问题

合并第三方真机和模拟器的.framework或(静态库.a)文件的方法

返回顶部