我正在开发一个使用推送通知并在iOS 5.1.1设备上进行测试的应用。我想测试在应用首次运行期间提示用户有关推送通知的情况。第一次调用registerForRemoteNotificationTypes时会出现该对话框,但即使从头开始重新安装该应用程序,也不会再次显示该对话框。如何清除设置以便再次出现对话框?
同样的问题是posted before,但答案不适用于iOS 5或更高版本,如评论中所述。
Apple的documentation表示要卸载应用程序并弄乱时钟,使其看起来像应用程序已卸载一天,但这不适用于iOS5。
另一个答案建议运行General - >重置 - >擦除所有内容和设置 - 我试过这个,但它冻结了我的设备,我最终不得不重新启动它。无论如何,这是一个严厉的解决方案,不适用于测试。
另一个答案建议从/private/var/mobile/Library/RemoteNotification/Clients.plist中删除您的应用条目,但iOS5上不存在此文件。
有没有办法在iOS5上实现这一目标?
答案 0 :(得分:5)
我找到了一个解决方案,如果你的设备被越狱了,那就有效了:
/var/mobile/Library/SpringBoard/applicationstate.plist
SBRemoteNotificationClient
killall SpringBoard
,或使用Respring应用。下次运行应用时,它会再次显示通知权限对话框。
我在iOS 5.1.1上测试了这个。
答案 1 :(得分:0)
如果您的iOS 5和iOS 6的代码路径没有太大差异,最简单的选择可能只是测试iOS 6上的特定行为 - 您在iOS 5上获得的回调应该足够相似,因为它不是一个问题。
或者,更改应用的捆绑包ID。稍微繁琐(过去我需要重新启动Xcode才能注意到包ID的变化),并且您需要一个方便的通配符配置文件。