前言
本篇文章权当笔记, 主要是在制作SDK的时候, 需要配置很多基础的字段, 十分容易忘记. 文章末尾会介绍当前文章的不足,以及下一个版本需要添加的功能.本篇都是在讲如何创建一个属于自己的SDK, 至于SDK的代码规范,注释规范等之后会在下一篇进一步介绍.
-
打开Xcode, 新建工程, 选择Cocoa Touch Framework, 点击next.
创建framework.png
- 新建封装的功能类MZRobotApi类, 并实现其自定义的方法(方法可下载demo查看)
-
完成制作SDK的基础配置:
基础配置.png
3.1, 在TARGETS下选中工程->Build Setting->搜索linking.
3.2, 将Link With Standard Libraries设置为NO. 目的是为了避免重复链接.
3.3, Dead Code Stripping设置为NO, 如果开启此项就会对代码中的”dead”、”unreachable”的代码过滤, 不过这个开关是否关闭,似乎没有多大影响, 一般framework的制作过程中选择关闭.
3.4, 将Mach-O Type设为Static Library, framework可以是动态库也可以是静态库,对于系统的framework是动态库,而用户制作的framework只能是静态库。
-
添加armv7s
添加armv7s.png
在Architectures 中添加armv7s ,armv7s属于ARM处理器的指令集, 添加armv7s Xcode会自动生成一个二进制包.(具体解释可查看: armv7s等指令集详解)
-
设置Headers, 将需要公开的文件拖至Public下, 隐藏的拖至Private或者Project下. 隐藏的头文件就无法再被引用.
选择需要公开的头文件.png
-
然后在MZRobotSDK.h 中引入公开的头文件, 只能引入公开的头文件.
导入需要公开的头文件
-
打包: 我只学会了手动打包的方式, 至于脚本打包, 暂时没有学习, 业余时间再去学习.
选中模拟器,编译程序command + B,
选中测试机,编译程序command + B
![](https://img.haomeiwen.com/i1659233/416a4bb26c450d73.png)
注意: 此时finder中找到framework文件, 刚编译完成的两个操作后会分别生成Debug-iphoneos(真机)和Debug-iphonesimulator(模拟器)两个文件. 我们需要将两个文件合并起来.
-
合并: 通过终端命令将两个framework合为一个模拟器和真机都可使用的framework。打开终端,输入lipo -create命令将Debug-iphoneos下FrameworkTest.framework目录下的FrameworkTest文件.拖拽到终端中,会自动有空格。然后将Debug-iphonesimulator下FrameworkTest.framework目录下的FrameworkTest文件拖拽进来,也会自动有空格,然后输入 -output,敲空格,在引入一个新的路径。最后敲回车,这样就合并了.
合并后需要将新生成的SDK替换旧的SDK.png
-
用合并后的新文件替换掉旧文件
直接复制过去就可以使用.png
-
调用
![](https://img.haomeiwen.com/i1659233/322748c9bfb07931.png)
注意事项:
1, 命令行: lipo -create 真机FrameworkTest路径 模拟器FrameworkTest路径 -output 新文件夹路径.
2, 合并后生成的新文件是.lipo后缀的, 我们不需要这个后缀, 将后缀删除掉后, 替换framework中的文件, 替换后将framework拷贝出来, 直接拖进新项目, 引入头文件即可使用.
- 下一篇文章需要添加的功能:
1, framework中添加图片资源bundle
2, 添加第三方依赖
3, 使项目支持cocoapods导入
4, 详细介绍SDK的代码规范以及注释规范
-
总结
网友评论