Android 关于极光推送时测试和正式的问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cao126197103/article/details/71081301

极光推送并没有提供区分测试和正式的字段,如果想区分测试和正式的环境,可以重新注册一个,在重新注册时,会让你重新填写包名,

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

然后我们配置gradle,

 buildTypes {
    release {
     manifestPlaceholders = [
                    JPUSH_PKGNAME: "极光注册时填写的包名",
                    JPUSH_APPKEY : "正式appkey", 
                    JPUSH_CHANNEL: "developer-default", //暂时填写默认值即可.
    }
    debug {
      ...
      applicationIdSuffix ".debug"
      manifestPlaceholders = [
                    JPUSH_PKGNAME: "极光注册时填写的包名",
                    JPUSH_APPKEY : "测试appkey", 
                    JPUSH_CHANNEL: "developer-default", //暂时填写默认值即可.
            ]
    }
  }

在配置manifast时配置极光的广播的时候会需要一个包名,这个包名你不能固定,要和applicationId相同,不然会接受不到广播。

  <category android:name="${JPUSH_PKGNAME}" />

applicationIdSuffix :applicationId 的后缀,添加上这个后,你的applicationId 就是拼接上这个后缀。

PackageName和ApplicationId的区别:
Android 利用 Gradle 作为 Build System 之后:不同的 flavor 或者 build type 可以拥有不同的 application id,也就是不同的进程 id。

productFlavors {
    pro {
        applicationId = "com.example.my.pkg.pro"
    }
    free {
        applicationId = "com.example.my.pkg.free"
    }
}

buildTypes {
    debug {
        applicationIdSuffix ".debug"
    }
}

**application id 与 package name 分工明确。
application id 负责 App 的进程 ID
package name 负责 R 的包名以及 Manifest 中 Activity 等四大组件的相对包名**

如果 build.gradle 中没有指定 applicationId,那么 application id 的默认值就是 manifest 的 package 属性值。

关于极光推送的另一种方法:

只需要注册一个应用,在给服务器RegistrationID的时候,给这个RegistrationID添加一个字段比如说beta,根据让服务器根据这个字段来判断是不是测试服,来推送

笔记一下时间久了有点忘了

三元运算 1==2?true:false;

猜你喜欢

转载自blog.csdn.net/cao126197103/article/details/71081301