欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

iOS合并真机和模拟器framework

程序员文章站 2022-04-11 21:00:03
在实际的项目开发中,我们会碰到某些静态库只能在真机或者模拟器中的一个上可以运行。为了让静态库在模拟器和真机都可以正常的运行,就涉及到如何把一个工程生成的静态库打包以后生成的framework进行合并。下面简单介绍下合并的过程。 首先,说一下静态库的打包 在Xcode顶部,选中工程,点击列表中的Edi ......

在实际的项目开发中,我们会碰到某些静态库只能在真机或者模拟器中的一个上可以运行。为了让静态库在模拟器和真机都可以正常的运行,就涉及到如何把一个工程生成的静态库打包以后生成的framework进行合并。下面简单介绍下合并的过程。

首先,说一下静态库的打包

在Xcode顶部,选中工程,点击列表中的Edit Scheme 如下

iOS合并真机和模拟器framework

打开后,选择Run->Info 将Debug模式改成Release模式,然后Close

iOS合并真机和模拟器framework

回到工程,我们分别使用模拟器和真机编译项目,然后来到工程的Products文件 如下所示

iOS合并真机和模拟器framework

点击后,我们会看到如下的文件

iOS合并真机和模拟器framework

该文件夹中分别是真机和模拟器生成的。我们需要的是下面这两个文件

iOS合并真机和模拟器framework

iOS合并真机和模拟器framework

接着,我们打开终端:

输入lipo -info 加真机和模拟器的文件路径 回车,如果看到armv7 arm64说明是真机,i386 x86_64说明是模拟器

重点:合并

lipo -create 真机路径 模拟器路径 -output 真机路径


因为我这边是合并到真机的路径上,所以合并完成后我们可以按上面的方式进行测试,拖入真机的路径,需要得到的是armv7 i386 x86_64 arm64

这个就代表合并成功了(当然你也可以输出到模拟器路径或者其他路径)

接下来就是把output的路径中以.framework结尾的文件添加到需要的工程中就可以使用了。

好了,上面就是合并framework相关的内容,如有不对的地方,欢迎各位指正,