我目前正在研究由我公司的另一位开发人员开发的推送通知工作流程。 我有关于推送通知的沙箱的问题。 我为我的生产环境生成了一个.pem。 我已使用openssl测试了id,如this tutorial中所述。
当我对public class StartGame extends Activity {
SurfaceViewGame v;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setVolumeControlStream(AudioManager.STREAM_MUSIC);
v = new SurfaceViewGame(this);
setContentView(v);
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
v.pause();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
v.resume();
}
url进行测试时,即使我不使用developpement密钥和cert文件(我使用prod文件),连接也没问题。
如果我使用我的prod pem文件构建并发送推送消息到gateway.sandbox.push.apple.com,该消息将被发送到prod设备或dev设备?
答案 0 :(得分:1)
没有生产设备或开发设备这样的东西。有些设备具有应用程序的生产版本或开发版本。
您只能使用开发环境向应用的开发版本发送推送,同样,您只能使用生产环境将推送发送到应用的生产版本。
使用不同的配置文件对生产和开发构建进行签名,这会导致您的应用获得的推送令牌不同,如果您尝试使用沙箱环境发送推送但使用生产推送令牌,那么它将被拒绝,并且类似地尝试将生产环境与dev推送令牌一起使用。
答案 1 :(得分:-1)
您需要正确设置网关,使用正确的PEM,无论是Dev PEM还是Dist PEM。 Xcode需要开发配置文件和证书才能使用Dev PEM运行和测试