起始原因:
由于项目中用到Jpush,项目组决定需要将第三方账号的测试环境和开发环境区分开来,对于推送,可以做到测试环境全推不会影响到生产环境的目的,研究了极光的文档,发现针对Android,对于一个项目,极光没有将生产环境和测试环境分开,IOS确是分开,因此就需要自己做处理(搞不懂极光为什么这么设计)
准备工作:
下面就是动手去做
首先要解决这个问题就要重新申请一个新的项目。到极光官网应用中心,重新创建一个项目,获取到新的appkey,作为测试环境的key用。这里注意的是创建项目完成后需要在推送设置里面设置下应用的包名,当然不能和之前生产的相同
正文
1、首先要修改AndroidManifest.xml 中的一些配置
<meta-data
android:name="JPUSH_APPKEY"
android:value="${JPUSH_APPKEY}" />
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="${GAODE_APPKEY}"></meta-data>
用${JPUSH_APPKET}和${GAODE_APPKEY}替换掉之前写死的appkey
2、下面就是配置自己的app下面的build.gradle文件
这里其实就是需要创建多渠道,针对不通的渠道对应不同的包名
代码如下
productFlavors {
flavor_release{
applicationId "你的生产环境包名"
manifestPlaceholders = [
JPUSH_PKGNAME : applicationId,
JPUSH_APPKEY : "你的生产环境Jpush的appkey", //JPush上注册的包名对应的appkey
JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.
TD_CHANNEL_VALUE: "default_channel",
GAODE_APPKEY : "你的生产环境高德地图的appkey"
]
}
flavor_dev{
applicationId "你的测试环境包名"
manifestPlaceholders = [
JPUSH_PKGNAME : applicationId,
JPUSH_APPKEY : "你的测试环境Jpush的appkey", //JPush上注册的包名对应的appkey
JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.
TD_CHANNEL_VALUE: "default_channel",
GAODE_APPKEY : "你的测试环境高德地图的appkey"
]
}
}
}
3、打包
在打包的时候我们选择不同的渠道就能对应打出不同包名的包了
************************************************** 完 **********************************************