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代码工程下。
  • 移动推送证书不同

    如果App需要使用移动推送功能,则需要分别配置测试版与发布版的推送证书。详细操作参见移动应用推送开发指南

    • iOSios
    • Androidandroid
  • 账号隔离

    测试版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要正式发布时,只需要替换正式版的安全图片即可。
  • 替换测试版/正式版的安全图片后,建议清除代码工程的缓存后再调试,以免因缓存造成问题。