iOS 自己开发SDK必须要注意的几点
2015-11-06 20:25
399 查看
iOS 自己开发SDK必须要注意的几点
最近做了几个自己的SDK发现,自己也摸索出了一点点经验,现在分享给大家,如有错误地方,请指正。希望大家多多支持,顺便推荐一下我的github地址:https://github.com/leerme,我分享了一下源码,大家如有喜欢,记得给星星哦;好了步入正题了:
注意事项一:所有类名都应该加前缀
n说明:没有前缀的类名有冲突的风险。
nBad Case:微信分享的 SDK,文件名:WXApiObject.h,代码如下,其中BaseReq类和BaseResp类都没有加前缀。
nBaseReq
nWXBaseReq
注意事项二:所有 category 方法加前缀
n说明:category 方法如果不加前缀,有冲突的风险。 nBad
Case:腾讯分享的 SDK,它为 NSArray 增加了一个 JSONArray 的 category,造成我们本身的同名 category 被覆盖。另外他们为 NSArray 增加的其它 category 和著名的 Cordova 开源库冲突,造成 Cordova 无法使用。
nJSJSONArray
注意事项三:不要将第三方库打包进
SDK
n说明:尽量不要将第三方库打包进 SDK,如果要打包,最好也要将该第三方库重命名,以避免冲突。
nBad Case:小米的推送 SDK,直接在 SDK 静态库里面编进去一个第三方依赖库,而且这个库还是 ASIHttpRequest。ASIHttp 当前已经处于无人维护状态,很多 Bug 都是大家自己在修复。在 SDK 中依赖这种库还是比较麻烦的。
注意事项四:做基本的检查和测试
n说明:SDK 对外公布前应该进行基本的编译检查,不应该有编译器警告存在。
nBad
Case:腾讯分享的 SDK。它的 CGIParamsWrap.o 和 TencentOAuth.o 文件里面的方法名冲突了,如下所示:
nld:
warning: instance method ‘deleteAPIRequestBySeq:’ in category from /Users/user/work/iphone/solar-ios/lib_common/TencentOpenApi/TencentOpenAPI.framework/TencentOpenAPI(CGIParamsWrap.o)
overrides method from class in /Users/user/work/iphone/solar-ios/lib_common/TencentOpenApi/TencentOpenAPI.framework/TencentOpenAPI(TencentOAuth.o)
注意事项五:文档完整并且正确
n说明:这就不用解释了吧?
nBad
Case: 微信官方的微信支付的示例代码,里面有各种错误,代码都无法编译成功。如下所示的是其中一个错误:
[插入]
注意事项六:支持最新的 CPU 版本
n说明:去年苹果的一次 Bug,造成上传应用必须支持 arm64 的 CPU 版本,结果众多应用因为依赖的 SDK 不支持 arm64 而无法更新。当然,这次 Bug 出来之后,各 SDK 厂商都紧急做了更新。
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- maven使用经验集
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- Android ADT 23.0.0无法更新到23.0.2问题解决方案
- 如何成为一名专家级的开发人员
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- SDKMAN:轻松管理多个软件开发套件 (SDK) 的命令行工具
- 样式表CSS布局经验
- 路由器之基本维护经验
- Parse正式发布开源PHP SDK
- 非常不错的MySQL优化的8条经验
- .NET微信公众号开发之公众号消息处理
- 使用nodejs开发cli项目实例
- nodejs开发微博实例
- Egret引擎开发指南之创建项目
- Android开发自学笔记(二):工程文件剖析