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要正式發布時,只需要替換正式版的安全圖片即可。
  • 替換測試版/正式版的安全圖片后,建議清除代碼工程的緩存后再調試,以免因緩存造成問題。