问题
- 什么是SDK?
- SDK 拿来干嘛的?
- 怎样开始SDK的开发?
- 如何使用SDK?
( 一)什么是SDK?
SDK我们iOS中可以称之为,静态库和动态库。(动态库,就是加载到内存中,供所有的APP使用,但是这么做,苹果是不会让你上架的。我们一般就制作静态库了。)
静态库:.a 和 .frameWork 形式
动态库:.dylib(.tbd[这是后来苹果将.dylib 改成 .tbd]) .framework
//从上面看来,framework形式的包含了静态库 和 动态库。所以还是用 .framework 更好。
(二)SDK 干什么?
- 我们公司里如果开发团队分成核心研发组 ,业务组,我们可能就需要了。我们需要将公司底层代码打成sdk ,只暴露出接口来给我们使用。
- 我们自己写的代码,只想暴露出接口给别人使用的时候。
(三)怎么开发?
cocoapods
- 如何打包frameWork
pod package ***.podspec --force //生成framework
//--library 表示.a
// force 则表示强制覆盖之前存在的文件
pod package projectName.podspec --library --force // .a 文件
- 如何将图片资源放入cocoapods中?
//在.podspec 中加入这句话就OK了 , 我一开始用的是resources_
// s.resource_bundles = {
// 'LBStarView' => ['LBStarView/Assets/*.png']
// }(这个会报错,没用)
s.resource = 'LBStarView/Assets/*' //(这个可以,图片前面最好加个前缀,防止冲突)
// 在cocoapods对应的库中如何调用图片资源呢
UIImage *image= [UIImage imageNamed:imageName inBundle:[NSBundle bundleForClass:self.class]
xcode
-
新建framework
-
写入文件代码
-
设置公开文件
或者
-
设置项目配置
- 编译生成真机和模拟器framework
模拟器
真机
成功后如何查看framework支持哪些设备
lipo -info LBSDK
-
脚本合并真机和模拟器
lipo -create 第一个framework的二进制文件的绝对路径 第二个framework的二进制文件的绝对路径 -output 存放的路径/输出的SDK名称
最后 将这个替换掉任意一个framework里面的二进制文件,就OK了。
(四)怎么用?
我们直接拖入工程,就可以饮用了,点copy items 。