JPush Android 推送如何區分開發、生產環境


我們 Android 開發者在使用極光推送時可能會發現,在通過官方控制台進行推送時。只有 iOS 區分了開發和生產環境,而 Android 則沒有。但實際開發中又確實經常需要針對開發和生產環境分別來推送,這里就講解下 JPush 如何實現 Android 應用的不同環境推送。

首先,我們在極光推送官網控制台中創建兩個應用,一個用於生產環境,一個用於開發環境。就像這樣:

針對不同環境創建兩個應用.png

這里推薦開發環境的包名為生產環境的包名加上 .debug 后綴。即包名分別類似於:

  • release: com.jpush.test
  • debug: com.jpush.test.debug

這樣我們就得到了兩個 AppKey,之后來設置下應用的 AndroidManifest.xml,在填寫 JPUSH_APPKEY 的地方這樣寫:

<meta-data
    android:name="JPUSH_APPKEY"
    android:value="${JPUSH_APPKEY_VALUE}"/>

將和 JPush 相關的配置中的您應用的包名替換為 ${PACKAGE_NAME}

然后再設置應用的 build.gradle 文件:

buildTypes {
    release {
      ...
      manifestPlaceholders = [JPUSH_APPKEY_VALUE: "生產環境應用的 APP_KEY",
                              PACKAGE_NAME      : "com.jpush.test"]
    }
    debug {
      ...
      applicationIdSuffix ".debug"
      manifestPlaceholders = [JPUSH_APPKEY_VALUE: "開發環境應用的 APP_KEY",
                              PACKAGE_NAME      : "com.jpush.test.debug"]
    }
  }

到這里就已經大功告成了,通過 Android Studio 直接運行或打包時 Build Type 選擇為 debug 生成的應用便是開發環境。而在打包時 Build Type 選擇為 release 生成的應用則為生產環境,即正式環境

為什么可以這樣做?原因就在於 Android 應用的包名其實是由 build.gradle 中的 applicationId 決定的。applicationId 和 AndroidManifest.xml 中 package 具體有什么不同,可以看看這篇文章:
Android Package Name vs. Application ID

作者:Hevin - 極光
原文:JPush Android 推送如何區分開發、生產環境
知乎專欄:極光日報


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM