iOS将多个第三方sdk打包成静态库

来源:互联网 发布:网络犯罪现场勘查 编辑:程序博客网 时间:2024/05/17 01:35

前段时间做了个sdk打包成动态库,发现使用非常方便各种好处也特别多,然后在最后将APP打包时出问题了,打包时候动态库打不进去,想了很多办法还是没有解决,又因为赶时间所以只能重新打成静态库了。  

在打成静态库的时候遇到的最大的问题就是我这个sdk包括了很多的第三方SDK,里面有很多静态库。所以就是静态库中包含静态库,在此啰嗦一下,打包时动态库是可以直接将静态库打包进去的,而静态库中是没有办法包含静态库了,就算将第三方静态库打包进自己的静态库中,然后编译的时候它是不会将第三方静态库一起编译的(这是我根据使用静态库运行时报错的错误信息推断的或许不准确欢迎同行指正)。 

第一步当然是创建个静态库工程了  

 

然后根据需要可以决定是否删除系统自动创建的文件(文件是以工程名为名的)。  

第二步在Build Phases中添加Headers标签,再将你要打包成静态库的文件拖动到这个工程中,从Headers中的Project将你需要暴露的头文件拖动到Public中,如图: 

 

第三步就是导入第三方的静态库和头文件了,静态库编译的时候只要语法正确能够找到文件就可以了,所以你要在打静态库的时候导入所有涉及的库和文件:

注意,Add to targets不要勾上,完成后的结果是你虽然导入了静态库了,但是这里什么都没有:

如果这个地方有你导入的第三方静态库一定要将其删除.

到了这一步如果没有问题你编译就可以成功了,然后静态库就出来了。

可能有的第四步,如果你需要打成静态库的文件中有拓展(Categort),那么这个地方other Linker Flags要写入-ObjC,如图 

在Deployment中你可以设置你的静态库支持的最低版本:

第五步,使用静态库。在项目工程中使用静态库你不但要将自己的静态库导入的工程中,你还要将你的静态库所依赖的第三方静态库也一起导入你的工程中,记着你的静态库所使用的系统的动态链接库也要一并在项目中加上。

2 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 一岁宝宝不吃菜怎么办 幼儿园教案虫子爬进耳朵怎么办 鼻子出血怎么办幼儿说课 英语记不住发音不准怎么办 幼儿园孩子拼音记不住怎么办 孩子总是记不住东西怎么办 走丢了怎么办小班教案 走丢了怎么办小班社会 数学加减个十分不清怎么办 孩子b和d分不清怎么办 小孩b和d分不清怎么办 高一的数学不会怎么办 农村小孩到市里上学怎么办 和外国人打官司输了怎么办 碰见爱说你的领导怎么办 小孩脾气爆一句话就生气怎么办 小孩眼睛哭肿了怎么办 大人吵架吓到宝宝了怎么办 小孩晚上睡觉不踏实怎么办 二宝美籍大宝怎么办 小孩一洗澡就哭怎么办 孩子去外地上学学籍怎么办 非婚生子父亲想要孩子怎么办 非婚生子孩子父亲找不到了怎么办 3岁半宝宝认字怎么办 上课注意力不集中老是发呆怎么办 海绵宝宝吃了会怎么办 宝宝误吞李子核怎么办 24个月宝宝不愿意说话怎么办 孩子凉着肚子吐怎么办 教宝宝说话不会说怎么办 2岁宝宝语言退化怎么办 两周宝宝嗓子哑怎么办 幼儿园孩子上课爱说话老师怎么办 一岁宝宝不会爬怎么办 孩子说话不太清楚怎么办 十一个月宝宝不爱吃饭怎么办 14个月宝宝不爱吃饭怎么办 一岁宝宝喜欢哭怎么办 4岁儿童不会说话怎么办 8个月宝宝37.5度怎么办