当我第一次使用 Xcode 安装我的 iOS 应用程序时,我的 iPhone 会询问我是否要启用推送通知。
我可以发送通知,并且徽章会显示我发送的号码。
当我从我的 iPhone 中删除应用程序并在 Xcode 中重建它并在我的 iPhone 上重新安装它(使用 Xcode)时:
- 设备不会询问我是否要启用推送。
- 徽章在那里并记住最后一个数字。
我在新设备(安装了 IPA)上尝试了相同的应用程序,它要求我提供权限。
我怎样才能完全让我的设备忘记应用程序?
谢谢
当我第一次使用 Xcode 安装我的 iOS 应用程序时,我的 iPhone 会询问我是否要启用推送通知。
我可以发送通知,并且徽章会显示我发送的号码。
当我从我的 iPhone 中删除应用程序并在 Xcode 中重建它并在我的 iPhone 上重新安装它(使用 Xcode)时:
我在新设备(安装了 IPA)上尝试了相同的应用程序,它要求我提供权限。
我怎样才能完全让我的设备忘记应用程序?
谢谢
从 Apple 的文档中针对 iOS 7 及更高版本进行了更新:
在 iOS 7 及更高版本上,启用推送的应用第一次注册推送通知时,iOS 会询问用户是否希望接收该应用的通知。一旦用户对此警报做出响应,除非设备已恢复或应用程序已卸载至少一天,否则它不会再次显示。
如果你想模拟你的应用程序的首次运行,你可以让应用程序卸载一天。您可以按照以下步骤实现后者,而无需实际等待一天:
- 从设备中删除您的应用程序。
- 完全关闭设备并重新打开。
- 前往“设置”>“通用”>“日期和时间”,将日期提前一天或更长时间。
- 再次完全关闭设备,然后重新打开。
对于 iOS 5 和 iOS6:
通过从备份中恢复设备来重置推送通知权限警报 (r. 11450187)。以下是有效执行此操作的步骤:
- 使用 Xcode Organizer 在设备上安装您的应用程序。关键是第一次安装应用程序而不运行它。
- 使用 iTunes 备份设备。
- 运行应用程序。将显示推送通知权限警报。
- 当您要重置推送通知权限警报时,请从您在第一步中创建的备份中恢复设备。
https://developer.apple.com/library/content/technotes/tn2265/_index.html
有一个解决方法,包括将系统时间提前两天,重新启动设备,然后将系统时间改回当前时间。iOS 设计为每个应用程序每天只请求一次推送权限。
在 iOS 上重置推送通知权限警报 启用推送的应用程序首次注册推送通知时,iOS 会询问用户是否希望接收该应用程序的通知。一旦用户对此警报做出响应,除非设备已恢复或应用程序已卸载至少一天,否则它不会再次显示。
如果你想模拟你的应用程序的首次运行,你可以让应用程序卸载一天。您可以通过将系统时钟提前一天或更长时间,完全关闭设备,然后重新打开设备来实现后者,而无需实际等待一天。
http://developer.apple.com/library/ios/#technotes/tn2265/_index.html
我和你在同一条船上。我发现最有帮助的是稍微更改捆绑标识符。
示例:您的捆绑包标识符是 com.company.app。如果您需要测试启用推送通知,请将标识符更改为 com.company.app1。它将作为新应用安装并具有新的推送通知权限设置。
只需确保在完成测试后将其改回即可。
首先,iOS
记住push settings,badge
值没有关系,你没有得到push notification
。我确信还有其他问题。是的,iOS
记住push settings
并badge
重视应用程序。当您第一次在设备上安装时,它会要求您确认推送。badge
您可以通过调用重置值setApplicationIconBadgeNumber:
如果要重置push settings
,则可以通过重置所有setting
设备来完成。
如果您有任何应用程序初始化代码(例如,当文档文件夹中没有可用的数据库时复制/初始化数据库。所以您知道它已重新安装)您可以将徽章计数重置为零。
同样,如果用户从包中手动删除 db 文件,或者您的应用程序没有此类初始化设置,这可能会失败。
按照以下步骤通过以下步骤刺激您的应用程序的首次运行:
1)。从设备中删除您的应用程序。
2)。完全关闭设备并重新打开。
3)。前往“设置”>“通用”>“日期和时间”,将日期提前一天或更长时间。
4)。再次完全关闭设备,然后重新打开。