接入 SDK 后要测试,不能影响线上客户,怎么处理呢?

一、Android 设备区分

  1. 使用相同的 Appkey 和 包名,推送时使用 registrationID、tag、alias 针对性的对测试机进行推送测试
  2. 如果一定要测试广播推送,那么在官网新建一个测试应用,Appkey 和包名不一样,专门用作测试
  3. 如果你还需要包名一样并测试广播推送,那么在官网新建一个极光账号,新建一个测试应用,配相同的包名进行测试。

说明:实际上采用第一个方案即可,广播推送和其他方案推送本质上没有区别。

参考文章:https://www.jianshu.com/p/9eb52857bc9f

二、iOS 设备区分

2.1 客户端环境区分

  1. 客户端安装的 App 实际对应什么环境,是由打包 ipa 时候选择的证书决定的。
  2. 初始化时,apsForProduction:isProduction 必须和你打包选择的证书一一对应进行配置,虽然不是决定 App 环境的的因素,但若不一一对应后期可能会出问题,所以请一一对应。
  3. AppStore 下载的、adhoc、in-house 等证书打包为生产环境。如果你是直接运行安装到测试设备(运行调试状态),那你的安装的应用的证书环境只有可能是开发环境或者通配的。
  4. 一个手机上安装的一个 App 只有一种环境,不可能同时拥有两种环境
  5. 在官网上测试推送,该 App 能收到哪一个环境的消息,则代表他此时就是什么环境的,则必然收不到另一个环境的消息。

2.2 生产环境测试

  1. 打包出来,安装测试。(请务必选择这种方式!)

阅读 Xcode 打包生成 ipa 四个选项的具体区别

  1. 用 Xcode 将 App 安装到手机上,然后手动点击手机上的 App 图标让他运行,然后做推送测试。(强烈不建议这样测试生产环境,因为一般是做不到正确配置,且并不能看实时日志,也没有必要。)重要说明:Xcode 里面的设置:
    • 证书需要设置为发布证书;
    • run 也需要设置为 release,选了 release 以后就可以直接 run 一个生产证书的包;

null

  • 设置成功的表现:
    • 无法直接启动,只能手动点击 App 图标启动(如果不是这样的,说明你还是 debug 状态,最好就直接打包出来测试!)
    • 在生产环境下启动,是 不能在控制台实时看到日志的,所以还不如选择打包安装

2.2 服务端推送环境区分

  1. 官网推送选择 生产环境、开发环境;推送成功后在推送历史-推送平台中 ios 代表开发环境,ios-product 代表生产环境
  2. API 推送设置可选参数 options——环境参数 apns_production,true 为生产、false 是开发,请务必注意参数类型是 Boolean ,不是字符串或其他。点我 强烈建议手动配置该字段,而不是保持默认。)

null

  1. JSON 示例文档 ;服务端 SDK 参考 example:Java python C# php
  2. 推送消息后可以在官网-应用-推送历史-操作-详情展开看平台环境实际是什么(iOS-product 代表生产),如果与你认为的不一致,去检查你的代码。

如果对你有帮助,点个赞呗 ლ(╹◡╹ლ)

不吹不黑,关注「常见问题」专栏可以解决你 90% 的问题 (ノ◕ω◕)ノଘ_ଘ

如果还有你想知道的问题没有总结方案,来评论区跟我交流交流吖