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 推送如何区分开发、生产环境
知乎专栏:极光日报

posted @   极光JIGUANG  阅读(4805)  评论(0编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
历史上的今天:
2016-03-30 推送人群的选择【技术篇】
点击右上角即可分享
微信分享提示