重置ios5中的推送通知权限设置

时间:2012-10-22 22:48:59

标签: iphone push-notification

我正在开发一个使用推送通知并在iOS 5.1.1设备上进行测试的应用。我想测试在应用首次运行期间提示用户有关推送通知的情况。第一次调用registerForRemoteNotificationTypes时会出现该对话框,但即使从头开始重新安装该应用程序,也不会再次显示该对话框。如何清除设置以便再次出现对话框?

同样的问题是posted before,但答案不适用于iOS 5或更高版本,如评论中所述。

Apple的documentation表示要卸载应用程序并弄乱时钟,使其看起来像应用程序已卸载一天,但这不适用于iOS5。

另一个答案建议运行General - >重置 - >擦除所有内容和设置 - 我试过这个,但它冻结了我的设备,我最终不得不重新启动它。无论如何,这是一个严厉的解决方案,不适用于测试。

另一个答案建议从/private/var/mobile/Library/RemoteNotification/Clients.plist中删除您的应用条目,但iOS5上不存在此文件。

有没有办法在iOS5上实现这一目标?

2 个答案:

答案 0 :(得分:5)

我找到了一个解决方案,如果你的设备被越狱了,那就有效了:

  • 使用iFile等应用程序使用属性列表查看器
  • 打开文件/var/mobile/Library/SpringBoard/applicationstate.plist
  • 找到您应用的捆绑包标识符并删除密钥SBRemoteNotificationClient
  • 重启SpringBoard - 重启设备,通过SSH连接设备并运行killall SpringBoard,或使用Respring应用。

下次运行应用时,它会再次显示通知权限对话框。

我在iOS 5.1.1上测试了这个。

答案 1 :(得分:0)

如果您的iOS 5和iOS 6的代码路径没有太大差异,最简单的选择可能只是测试iOS 6上的特定行为 - 您在iOS 5上获得的回调应该足够相似,因为它不是一个问题。

或者,更改应用的捆绑包ID。稍微繁琐(过去我需要重新启动Xcode才能注意到包ID的变化),并且您需要一个方便的通配符配置文件。