App开发一般分为两个阶段,开发调试阶段和发布量产阶段。友好的开发模式是将这两个阶段的数据隔离开来,避免相互干扰。由此应运而生了App的测试版和正式版。本章节主要介绍自有App测试版与正式版的区别。
测试版与正式版的区别
自有App的测试版和正式版,对应的是两套独立的环境,即测试环境和正式环境,两套环境的数据彼此隔离。简单理解,测试版主要用于开发期间的设备调试;正式版主要供终端用户使用。两者详细的区别如下。
- 安全图片不同
开发同一个App,开发者可以在控制台下载两张安全图片,分别对应测试版和正式版。两张安全图片里存储着两个不同的AppKey。平台通过AppKey来区分App的版本,从而返回不同的数据给测试版或正式版App。
- API Level 8
中国站 国际站 yw_1222_china_production.jpg yw_1222_oversea_production.jpg - API Level 7及以下
站点 测试版 正式版 中国版 yw_1222_china_develop.jpg yw_1222_china_production.jpg 国际版 yw_1222_oversea_develop.jpg yw_1222_oversea_production.jpg
说明 安全图片请勿重命名,否则会导致SDK初始化失败。请您下载后直接放到App代码工程下。 - API Level 8
- 移动推送证书不同
如果App需要使用移动推送功能,则需要分别配置测试版与发布版的推送证书。详细操作参见移动应用推送开发指南。
- iOS
- Android
- 账号隔离
测试版App与正式版App,彼此的账号数据相互隔离。使用同一个手机或者邮箱登录时,需要分别在测试版App和正式版App中注册。
- 设备隔离
测试版App与正式版App,彼此绑定的设备相互隔离。使用同一个手机或者邮箱登录时,需要分别在测试版App和正式版App中绑定设备(对于App而言,等同于用不同的账号绑定设备),并且两者绑定的设备类型也不同,区别如下。
- 测试版App只能配网绑定处于调试阶段(产品处于未发布状态)的设备
- 正式版App只能配网绑定处于量产阶段(产品处于已发布状态)的设备
切换测试版与正式版的配置项如下。
- Android
IoTSmart.InitConfig initConfig = new IoTSmart.InitConfig() .setProductEnv(IoTSmart.PRODUCT_ENV_PROD) // 设置自有App的版本,PRODUCT_ENV_DEV表示测试版,PRODUCT_ENV_PROD表示正式版
- iOS
#import <IMSIotSmart/IMSIotSmart.h> config.appType = APP_TYPE_PRODUCTION; // 设置自有App的版本,APP_TYPE_PRODUCTION表示测试版,APP_TYPE_DEVELOP表示正式版
开发者建议
基于自有App测试版与发布版的区别,建议在开发自有App时注意以下几点。
- 配置App包名时,建议测试版与正式版使用同样的包名,便于App在测试版与发布版之间切换。
- 开发App时,测试版跟正式版建议使用同一个代码工程,当App要正式发布时,只需要替换正式版的安全图片即可。
- 替换测试版/正式版的安全图片后,建议清除代码工程的缓存后再调试,以免因缓存造成问题。