当我第一次使用Xcode安装我的iOS应用程序时,我的iPhone会询问是否要启用推送通知。
我可以发送通知,徽章会显示我发送的号码。
当我从iPhone中删除应用程序并在Xcode中重建它并在我的iPhone上重新安装它时(使用Xcode):
我在一台新设备上尝试了相同的应用程序(安装了IPA)并且它询问了我的权限。
如何让我的设备完全忘记应用程序?
由于
答案 0 :(得分:38)
针对iOS 7及更高版本的Apple文档进行了更新:
在iOS 7及更高版本中,第一次启用推送的应用注册推送通知时,iOS会询问用户是否希望接收该应用的通知。一旦用户响应此警报,除非设备已恢复或应用程序已卸载至少一天,否则不会再次显示该警报。
如果您想模拟首次运行的应用,可以将应用程序卸载一天。您可以通过以下步骤实现后者而无需等待一天:
- 从设备中删除您的应用。
- 完全关闭设备并重新打开。
- 转到设置>一般>日期&时间并将日期设定为一天或更长时间。
- 再次完全关闭设备并重新打开。
醇>
对于iOS 5和iOS6:
通过从备份恢复设备来重置推送通知权限警报(r.11450187)。以下是有效执行此操作的步骤:
- 使用Xcode Organizer在设备上安装您的应用。关键是首次安装应用程序而不运行它。
- 使用iTunes备份设备。
- 运行该应用。将显示推送通知权限警报。
- 如果要重置推送通知权限警报,请从您在第一步中创建的备份中恢复设备。
醇>
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 settings
和badge
值。首次在设备上安装时,它会要求推送确认。您可以致电badge
setApplicationIconBadgeNumber:
值
如果您想重置push settings
,则可以重置设备的所有setting
来完成此操作。
答案 4 :(得分:0)
如果您有任何应用程序初始化代码(例如,在文档文件夹中没有可用数据库时复制/初始化数据库。因此您知道它已重新安装)您可以将徽章计数重置为零。
同样,如果用户手动从包中删除db文件,或者您没有为应用程序进行此类初始化设置,则可能会失败。
答案 5 :(得分:0)
按照以下步骤激励您通过以下步骤首次运行您的应用:
1)。从设备中删除您的应用。
2)。完全关闭设备并重新打开。
3)。转到设置>一般>日期&时间并将日期提前一天或更长时间。
4)。再次完全关闭设备并重新打开。