删除我的iOS应用程序时,推送通知状态仍然存在

时间:2012-09-11 12:37:39

标签: iphone ios xcode api uninstall

当我第一次使用Xcode安装我的iOS应用程序时,我的iPhone会询问是否要启用推送通知。

我可以发送通知,徽章会显示我发送的号码。

当我从iPhone中删除应用程序并在Xcode中重建它并在我的iPhone上重新安装它时(使用Xcode):

  • 设备不会询问我是否要启用推送。
  • 徽章在那里,记住最后一个号码。

我在一台新设备上尝试了相同的应用程序(安装了IPA)并且它询问了我的权限。

如何让我的设备完全忘记应用程序?

由于

6 个答案:

答案 0 :(得分:38)

针对iOS 7及更高版本的Apple文档进行了更新:

  

在iOS 7及更高版本中,第一次启用推送的应用注册推送通知时,iOS会询问用户是否希望接收该应用的通知。一旦用户响应此警报,除非设备已恢复或应用程序已卸载至少一天,否则不会再次显示该警报。

     

如果您想模拟首次运行的应用,可以将应用程序卸载一天。您可以通过以下步骤实现后者而无需等待一天:

     
      
  1. 从设备中删除您的应用。
  2.   
  3. 完全关闭设备并重新打开。
  4.   
  5. 转到设置>一般>日期&时间并将日期设定为一天或更长时间。
  6.   
  7. 再次完全关闭设备并重新打开。
  8.   

对于iOS 5和iOS6:

  

通过从备份恢复设备来重置推送通知权限警报(r.11450187)。以下是有效执行此操作的步骤:

     
      
  1. 使用Xcode Organizer在设备上安装您的应用。关键是首次安装应用程序而不运行它。
  2.   
  3. 使用iTunes备份设备。
  4.   
  5. 运行该应用。将显示推送通知权限警报。
  6.   
  7. 如果要重置推送通知权限警报,请从您在第一步中创建的备份中恢复设备。
  8.   

https://developer.apple.com/library/content/technotes/tn2265/_index.html

答案 1 :(得分:27)

有一种解决方法,包括将系统时间提前两天,重新启动设备,然后将系统时间更改回当前时间。 iOS旨在仅针对每个应用程序每天提出一次推送权限。

  

重置iOS上的推送通知权限警报第一个   时间推送启用的应用程序注册推送通知,iOS询问   用户是否希望收到该应用的通知。一旦用户   已响应此警报,除非是,否则不再显示   设备已恢复或应用程序已卸载至少一天。

     

如果您想模拟首次运行的应用,可以离开   该应用程序已卸载一天。没有你可以实现后者   实际上等一天通过设置系统时钟一天或   更多,完全关闭设备,然后关闭设备   上。

http://developer.apple.com/library/ios/#technotes/tn2265/_index.html

答案 2 :(得分:5)

我和你在同一条船上。我发现最有帮助的是略微更改包标识符。

实施例: 您的包标识符是com.company.app。如果需要测试启用推送通知,请将标识符更改为com.company.app1。它将作为新应用安装,并具有新的推送通知权限设置。

确保在完成测试后再将其更改回来。

答案 3 :(得分:2)

首先,iOS记住push settings,badge值与push notification没有任何关系。我确信还有其他一些问题。是的,iOS会记住应用的push settingsbadge值。首次在设备上安装时,它会要求推送确认。您可以致电badge

重置setApplicationIconBadgeNumber:

如果您想重置push settings,则可以重置设备的所有setting来完成此操作。

答案 4 :(得分:0)

如果您有任何应用程序初始化代码(例如,在文档文件夹中没有可用数据库时复制/初始化数据库。因此您知道它已重新安装)您可以将徽章计数重置为零。

同样,如果用户手动从包中删除db文件,或者您没有为应用程序进行此类初始化设置,则可能会失败。

答案 5 :(得分:0)

按照以下步骤激励您通过以下步骤首次运行您的应用:

1)。从设备中删除您的应用。

2)。完全关闭设备并重新打开。

3)。转到设置>一般>日期&时间并将日期提前一天或更长时间。

4)。再次完全关闭设备并重新打开。