ios framework 制作和合并
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios framework 制作和合并相关的知识,希望对你有一定的参考价值。
参考技术A 1、 run -> debug 模式换成 release2、默认创建的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打包Framework真机和模拟器兼容合并版本 - 详细攻略步骤