iOS 两种环境测试的相关知识
涉及到客户端和服务端,服务端的开发童鞋请往下翻一翻,看第二点。
1, 客户端
1, ) 客户端安装的 App 实际对应什么环境,是由打包 ipa 时候选择的证书决定的。
2, ) 初始化时,apsForProduction:isProduction 必须和你打包选择的证书一一对应进行配置,虽然不是决定 App 环境的的因素,但若不一一对应后期可能会出问题,所以请一一对应。
3, ) AppStore 下载的、adhoc、in-house 等证书打包为生产环境。如果你是直接运行安装到测试设备(运行调试状态),那你的安装的应用的证书环境只有可能是开发环境或者通配的。
4, ) 一个手机上安装的一个 App 只有一种环境,不可能同时拥有两种环境
5, ) 在官网上测试推送,该 App 能收到哪一个环境的消息,则代表他此时就是什么环境的,则必然收不到另一个环境的消息。
生产环境测试,客户端的两种姿势:
1、打.ipa包出来,安装测试。
2、用 Xcode 将 App 安装到手机上,然后手动点击手机上的 App 图标让他运行,然后做推送测试。(强烈不建议这样测试生产环境,因为一般是做不到正确配置,且并不能看实时日志,也没有必要。)
重要说明:Xcode 里面的设置:
证书需要设置为发布证书;
run 也需要设置为 release,选了 release 以后就可以直接 run 一个生产证书的包;

设置成功的表现:
无法直接启动,只能手动点击 App 图标启动(如果不是这样的,说明你还是 debug 状态,最好就直接打包出来测试!)
在生产环境下启动,是 不能在控制台实时看到日志的。
服务端
官网推送选择 生产环境、开发环境;推送成功后在推送历史-推送平台中 ios 代表开发环境,ios-product 代表生产环境
API 推送设置可选参数 options——环境参数 apns_production,true 为生产、false 是开发,请务必注意参数类型是 Boolean ,不是字符串或其他。
强烈建议手动配置该字段,而不是保持默认,各 SDK 的默认配置或许是不一样的。

推送消息后可以在官网-应用-推送历史-操作-详情展开看平台环境实际是什么(iOS-product 代表生产),如果与你认为的不一致,去检查你的代码。
网友评论