开发SDK注意事项
1. 修改类别文件名及类别方法。
开发SDK时通常会用到比较多的第三方的类别方法, 这样的话, 开发者在使用你的SDK时, 因为他可能也会加一些第三方的开源库, 比如都使用了NSString的md5类别文件。 由于这两个文件都是从网上下载来下的, 所以文件名是一样的。 这样在编译时就会报错。 然后就想到要去修改这个类别文件名, 等修改类别文件名后。 发现类别中的方法名是一样的, 而ios在调用两个相同方法的类别方法时, 不能确定其调用的哪个方法, 但可以肯定地是只会调用一个类别方法, 如果恰好开发者自己又修改了这个类别方法, 那就有问题了。
所以在SDK开发过程中, 需要修改引入进来的类名, 及方法名, 建议添加项目前缀, 最好是三个字母的, 如NAB, (两个字母为苹果自己保留使用)
2. 在开发SDK时, 如果发现某个方法命名时比较困难, 那么几乎可以肯定的是, 这个方法藕合度太高,需要再次进行分解。
3. 开发SDK时, 需要考虑到升级的问题, 并且可以指定某些版本必须强制升级。 (以防某些版本到后期发现有明显问题, 需要及时替换)
4. 开发SDK时, 需要留出一个接口, 能通过后台服务器强制关闭掉某个接入应用的调用。 (这可能会发生在恶意地攻击行为, 以及非恶意地使用行为,如某应用频繁自动重启事故,每次重启都会调用咱们的SDK,然后就会使得咱们的SDK服务器压力陡增), 这个时候, 如果后台能根据这个应用的APP ID啥的, 强制关闭它发的请求,或者屏掉他的请求, 你会发现世界如此美好。
5. 统计方面, SDK存储每个接口调用的次数,以在一定的情况下发送给服务器, 便于后期分析某些接口是否有问题,或者是根本就没有用户使用的情况。
6. 有些SDK使用的前提条件,最好是在编译期就提示给用户,而不是在运行期, 可以使用类似下面代码来进行提示
#warning - Release scheme, this is not work.
#if !__has_feature(objc_arc)
#error iBeaconSDK requires automatic reference counting
#endif
开发SDK注意事项的更多相关文章
- 《连载 | 物联网框架ServerSuperIO教程》- 5.轮询通讯模式开发及注意事项。附:网友制作的类库说明(CHM)
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 《连载 | 物联网框架ServerSuperIO教程》- 6.并发通讯模式开发及注意事项
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 《连载 | 物联网框架ServerSuperIO教程》- 7.自控通讯模式开发及注意事项
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 《连载 | 物联网框架ServerSuperIO教程》- 8.单例通讯模式开发及注意事项
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 分享 Java微信开发SDK
分享 Java微信开发SDK •发布于 4周前 •作者 朋也 •432 次浏览 •最后一次编辑是 2周前 •来自 分享 给大家分享两个java开发微信公众号的sdk jfinal-weixin ...
- VopSdk一个高逼格微信公众号开发SDK(源码下载)
看之前回复很多说明大家很有热情&文章被误删掉了,不想让有的朋友错失这个高逼格的东西,现在重新发布,这次就直接放出源码,文章最末下载地址. 看之前回复很多说明大家很有热情&文章被误删掉了 ...
- VopSdk一个高逼格微信公众号开发SDK:自动化生产(装逼模式开启)
VopSdk一个高逼格微信公众号开发SDK(源码下载) VopSdk一个高逼格微信公众号开发SDK:自动化生产(装逼模式开启) 针对第一版,我们搞了第二版本,老规矩先定个目标. 一 我们的目标 a.移 ...
- Android开发SDK接入机智云,智能家居实现APP远程控制多设备
代码地址如下:http://www.demodashi.com/demo/12847.html 一.前言. 此框架只用了一周星期做了出来,因为对机智云的框架比较熟悉了 !期间SDK初始化出了问题,去咨 ...
- JPEG2000开发SDK及其特点
JPEG2000开发SDK及其特点 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 说明:JPEG2000被开发来取代JPEG,但因为大量核心算法被专利注册, ...
随机推荐
- 查询pthread库的函数
首先需要先安装pthread看的手册文档,然后用如下命令查询: man -k pthread
- 性能测试工具LoadRunner24-LR之Analysis 系统资源分析
1.内存分析方法 内存分析方法主要是用于判断系统有无遇到内存瓶颈,是否需要通过增加内存等手段提高系统性能表现.主要计数器包括Memory和Physical Disk类别的计数器 内存分析的主要步骤和方 ...
- [转]Jquery Mobile dialog的生命周期
本文转自:http://www.cnblogs.com/jackhuclan/archive/2012/04/05/2432972.html JQuery Mobile对htm5的移动开发绝对是个好用 ...
- Murano Weekly Meeting 2015.11.11
Meeting time: 2015.November.11th 1:00~2:00 Chairperson: Serg Melikyan, PTL from Mirantis Meeting su ...
- Murano Application
OpenStack Application Link: http://apps.openstack.org/ Those applications include Murano packages, H ...
- 细讲递归(recursion)
首先先对递归进行入门. 递归是以自相似的方式重复项目的过程.在编程语言中,如果程序允许您在同一函数内调用函数,则称其为函数的递归调用. 简而言之,递归就是函数的自身调用.可以看看下面的递归使用: vo ...
- 注册中心eureka
最近在忙一些其它的事情,两个城市来回跑还要办一些手续,挺费劲的,学习的事情也就耽误了一些,尽量赶吧. spring cloud为分布式的微服务架构提供了一站式的解决方案,eureka注册中心在spri ...
- 查看服务器配置信息prtdiag与systeminfo实用命令
UNIX(SUN服务器)bash-2.05# prtdiag -v系统配置: Sun Microsystems sun4u Sun Fire V890系统时钟频率:150 MHz内存大小:3276 ...
- pta08-图7 公路村村通 (30分)
08-图7 公路村村通 (30分) 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数N ...
- windows中的ubuntu
摘要 windows的cmd 实在是太难用,对于码农来说还是喜欢linux的命令行,功能强大:但是linux下的办公软件又没有windows下的强大,在windows下安装个虚拟机吧太卡了: 所以出了 ...