iOS 知识大全

最新打包framework的血与泪

2019-04-08  本文已影响0人  大佬的世界我不懂

参考文章:
iOS 项目打包framework
生成静态Framework(包含界面、图片、第三方库、第三方framework)
[ iOS 打包.framework(包括第三方、图片、xib、plist文件)详细步骤及需要注意的地方
]

一、先创建一个静态库工程,选择framework

image.png

创建之后会出现截图中的一个.h 一个framework

.h文件中存放在你想要public的文件,如下

image.png

二、把项目中使用的三方框架 用cocoapods 生成

项目中使用了cocoapods ,你想要打包的文件中可能引用了第三方库,那么集成的时候在创建的framework中也需要创建cocopods

image.png

另外如果你想手动导入第三方库的话即如下

image.png

这样好像打包的时候不太行,可能我没有找到正确的操作方式
最后还是用了pods

如果你在打包文件中引用了别的 sdk,如上图中的.a文件
那么打包的时候需要copy进去如下

image.png

三、把需要打包的项目文件直接拖进来

image.png

四、xcode打包framework的配置

1、将Mach-O Type设为Static Library,framework可以是动态库也可以是静态库,对于系统的framework是动态库,而用户制作的framework只能是静态库

image image.png

这个可以设置成NO,保证所有设备(就是架构模式)如arm64 armv7s 和x86

如果有将要打包成framework文件例如

image.png

这里面使用了图片,那么我们可以使用bundle

image.png

然后将图片直接拉进去


image.png

在将要打包成framework项目文件中引用图片资源需要如下图的使用方式

image.png

如果项目中有xib文件
打包编译后 在将要打包成framework项目文件中引用

image.png image.png

另外在新建的项目里面使用framework

image.png

五、编译command + B

屏幕快照 2019-04-08 下午4.45.36.png image.png image.png image.png

此处有个坑: 合并的是GameSDK,另外output 的也必须是这个名字,我手贱改成其他的名字,让后导入后一直报错

image.png

output合并后的的GameSDK需要替换

image.png

然后将bundle 和framework 放在一个文件夹中


六、问题:

1、解决分类(使用)
创建工程导入framework 将原先打包的framework 和bundle 放在同一个文件夹中,导入工程


image.png

iOS 程序引入framework 类别报错unrecognized selector sent to class

image.png

导入framework 运行会报错,找不到 #import <GameSDK/GameSDK.h>
将下图中的 M0dules 添加到Headers 不知道为啥就要这样干

image.png image.png

如果我们将要打包成framework的文件中包含.pch 文件如图
这个需要修改成framework里面的.pch路径

image.png image.png

有什么问题欢迎交流qq:1195366317

上一篇 下一篇

猜你喜欢

热点阅读