iOS 打包framework(包含第三方framework或.a文件)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 打包framework(包含第三方framework或.a文件)相关的知识,希望对你有一定的参考价值。

参考技术A 1.创建framework工程

2.将framework拖进工程中,工程分两部分,一个是原始文件(红色部分),一个是我需要进行封装的文件(蓝色部分):

3.将bitcode置为NO

4.1 选择工程->targe->build setting,在搜索框中搜索linking,进行如下设置
4.2 将Build Active Architecture Only 设为 NO

5.1 把要公开的头文件已到Public中去,在使用.framework时只能调用公开.h文件中的声明。
5.2 完成上述步骤之后,在HYSDK.h文件中,把所有需要暴露的.h文件都用#import < HYSDK/PublicHeader.h>引入,记住一定要将所有的需要暴露的.h文件都写在给定位置,不然编译后生成的.framework在引用的时候会有警告;

6.开始编译,选择Generic ios Device 或者 真机 或 模拟器,编译一下,再选择模拟器环境编译一下

9.创建成功之后。新建工程。将新的framework再倒入进去。配置相关依赖库即可。如果报找不到第三方的库,则需要将第三方SDK.framework倒入进来即可。

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(包含第三方framework或.a文件)的主要内容,如果未能解决你的问题,请参考以下文章

iOS 打包.framework(包括第三方图片xibplist文件)详细步骤及需要注意的地方

iOS制作Framework依赖第三方Framework

iOS 静态库和动态库打包framework流程(纯swift版/swift、OC混编版)

iOS 打包FrameWork

iOS打包framework库

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