确定设备令牌是沙箱还是分发

Nic*_*ick 7 apple-push-notifications devicetoken

有没有办法确定设备令牌是沙盒还是分发?我们正在测试,应用程序有时会使用开发证书进行签名,而其他应用程序则使用临时证书(分发证书)进行签名.这是因为我们将应用程序传递给100个提供的临时测试设备中的一些,并且还为我们的设备构建开发签名应用程序.因为发送推送通知要求我们选择适当的推送服务器和pem文件,所以能够确定令牌是沙箱还是分发以便以适当的方式发送通知以便推送通知成功将是很好的.我们有时必须使用分发配置文件来签署我们的应用程序,因此测试推送通知系统需要我们正确地提供这些通知.

Nic*_*ick 8

  1. 打开项目构建设置
  2. 转到预处理设置
  3. 在"未在预编译头中使用的预处理器宏"下(假设您没有在.pch文件中分支代码),在Release下添加TOKEN_ENV_SANDBOX = 0,在Debug和Ad Hoc下添加TOKEN_ENV_SANDBOX = 1.
  4. 在您的代码中只需使用编译器指令

#if!TOKEN_ENV_SANDBOX
NSLog(@"TOKEN_ENV == PRODUCTION");
#万一

#if TOKEN_ENV_SANDBOX
NSLog(@"TOKEN_ENV == SANDBOX");
#万一

编辑:更正了上述问题.