ios framework 制作和合并

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios framework 制作和合并相关的知识,希望对你有一定的参考价值。

参考技术A 1、 run -> debug 模式换成 release
2、默认创建的framework 是动态库,在 build setting 设置 Mach-O type = StaticLibrary

3、输入 在 build setting 设置 Build Active Architecture Only = NO 代表 当前输出的是 支持所有设备, YES 是当前选择的设备。

1创建 demo 工程,然后 在 file > save as workspace
关闭项目,打开 .workspace ,然后把 framework 工程拷贝到同目录,在工程中拖入framework的 .project 文件, 在 run 的里面可以选择 framework或者demo工程,直接修改framework之后 command+b ,切换到demo 运行即可,调试

在xcode12之前,上面的操作,完全可以输入合并的。

xcode12上出现的

我自己的做法是,在模拟器 command+b 的时候 修改配置项:

导出真机的时候,删除加入的 arm64 执行 command+b ,
这样再去合并。就能解决这个问题了。

貌似是swift版本的才有这个问题

在模拟器和真机合并framework之后,还会出现这个问题,就需要把 framework 中 Modules 的文件拷贝到合并的 framework 中:

如图, -output 路径为 Realse-iphoneos ,所以把 Realse-iphonesimulator->Modules 中的红色标注,拷贝到 Realse-iphoneos 对应位置。
解决问题。

iOS打包Framework真机和模拟器兼容合并版本 - 详细攻略步骤

打包Framework,测试时:

1、用模拟器打包,测试时只能跑在模拟器

2、用真机打包,测试时只能跑在真机

那么怎么做到一个版本兼容以上两种场景呢?

 

解决如下:

1、打开终端

2、输入  

 lipo -create 【模拟器打包path】 【真机打包path】 -output 【导出兼容版本path】

PS:每个单词之间记得加空格。

 

=======================  示例  Demo==========================

准备前提:

-- 假设我们包已经完成,并在模拟器和真机都能编译通过。

-- 先分别在模拟器下和真机下编译通过。 

 

实现步骤:

1、右击打开包,在finder显示

 

2、正常我们会看到这些,(这里我一般习惯设置成Release环境下),重点是第三个红框,这就是我们要合并的东西。

 

3、这里我为了路径简短(便于下面的观看),在桌面新建文件夹:

 

然后把刚才show in finder的两个包文件,整体拷贝到对应的文件夹下,如图:

 

4、打开终端:拖动上图蓝色选中到终端,查看路径(为了方便下面可以直接拷贝路径)

5、运用我开头写的命令:

lipo -create /Users/MACBOOK/Desktop/合并Framework/模拟器/IntelligentCollegeToB.framework/IntelligentCollegeToB /Users/MACBOOK/Desktop/合并Framework/真机/IntelligentCollegeToB.framework/IntelligentCollegeToB -output /Users/MACBOOK/Desktop/合并Framework/IntelligentCollegeToB

 

6、结果如下:

会在这里多出一个文件,这个文件就是合并了模拟器和真机的兼容证明,下面用这个替换就行了。

 

 

7、最后的就很简单了

我们拷贝一份真机下的包,然后将第6步中得到的文件替换进去,最终就是兼容版本包。

 

以上是关于ios framework 制作和合并的主要内容,如果未能解决你的问题,请参考以下文章

Uncaught InvalidArgumentException: Please provide a valid cache path. in /apps/vendor/laravel/framew

ios .a和.framework

iOS打包Framework真机和模拟器兼容合并版本 - 详细攻略步骤

ios8上怎么通过dlopen加载framework中的动态库文件

ios的framework合并

ios OC、swift混编制作framework