V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jpush
V2EX  ›  推广

JPush Android 推送如何区分开发、生产环境

  •  
  •   jpush · 2017-03-30 11:03:13 +08:00 · 1280 次点击
    这是一个创建于 2795 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们 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 为极光团队账号,欢迎关注)

    原文:JPush Android 推送如何区分开发、生产环境

    知乎专栏:极光日报

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1199 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 18:28 · PVG 02:28 · LAX 10:28 · JFK 13:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.