質問
私は開発アプリのプッシュ通知を選択するフィルタ。チェックはできる方法でユーザーの相互作用で、そういった試験は私のアプリのユーザが低下していプッシュ通知を有効に自分のアプリの中で最初に開始されます。
のダイアログで始まった registerForRemoteNotificationTypes
ただし、表示されたアプリです。したいリセットのiPhone OSのメモリマアプリです。削除アプリを再インストールしない。
解決
最初に押し可能なアプリ 登録のためのプッシュ通知ミュレーションソフトウェア 言うまでもなく両者がユーザーをご希望される場合には受 通知するアプリです。一度 ユーザーからなるこのアラートを出すことが みんなのもない限り、デバイス 復元またはアプリをしてい アンインストールのための少なくとも日です。
したい場合をシミュレーションの初 走りのアプリを入れることができるアプリ アンインストールがあります。 に役立てています。 後者でなく実際に待ってる 日設定によりシステムクロック 今後、日以上の セキュリティを完全に転換し の装置。
更新: としてのコメント以下、本ソリューションが停止しました以降、iOS5.1.私はするよう促す"という願バAppleで更新します。現在の溶液がリセット機器のコンテンツや設定画面を呼び出します。
更新: の注記が更新された新しい手順が正しく動作しなどのiOS7です。
- 削除アプリからの装置です。
- のセキュリティを完全にしてください。
- への設定に合わせて[設定]>[一般]>[日時および設定日の前日。
- の装置を完全に戻してください。
更新のiOS9
単に削除すると再インストールのアプリをリセットの通知状況 notDetermined
(意味を促す表した。
への回答によるGomfucius。https://stackoverflow.com/a/33247900/704803
他のヒント
別ののちょうどテストのために、これにのソリューションは、単にあなたのバンドルIDを変更することです。設定が完了したら、戻ったばかりのそれを変更することを忘れないでください!
IOS9.0.2んの"登録プッシュ通知アラートしてくださいアプリを削除し、再インストールします。すAppStore生産ダウンロード、特別モードになります。
更新: ここではiOS9.x
一方で、既に述べたとおりのアプローチのリセット通知の状態のため、デバイスからアプリの変更を行いios5を推奨たします。
この作品は私をiOS6:
- 削除アプリからデバイス
- 設定したdatetimeの二日間以上先
- 再起動、デバイス
- 設定したdatetimeの二日間以上先
- 再起動、デバイス
- トのアプリを再度
しかしこのことのみによって初期の迅速な再び登場しませんの削除その他のプ状態に関連するもの。
のplist: /private/var/mobile/Library/RemoteNotification/Clients.plist
...プッシュ通知のために登録されているクライアントが含まれています。あなたのアプリのエントリを削除すると、プロンプトが再表示される場合があります。
プログラムでそれをやって毎回私のために働くようです。 私は次の行でビルドがコメント解除しています:
[[UIApplication sharedApplication] unregisterForRemoteNotifications];
私はそれを私がPNから登録解除するたびに実行します。あなたが更新ムービーリストから明示的にアプリを終了し、右のそれを得るために設定アプリで通知センターで遊んでする必要がある場合があります。
また、PNに登録するユーザに尋ねるUIプロンプトが表示されない場合があります。最近のiOSのバージョンのいずれかで無効にされているかどうかわからない。
ianolitoが言ったように、日付を設定すると、動作するはずます:
あなたが実際に、前方に一日以上のシステムクロックを設定するデバイスを完全にオフにして、再び上のデバイスを回して一日を待たずに、後者を達成することができます。
私は自分のデバイス(iPhone 4、iOSの6.1.2)私のためのは動作しませんでした前方あるいは数日、システムクロックの日を設定することに気づきました。だから私は、の月の前方に日付を設定し、それは仕事をしたし、私のアプリケーションは、通知が再びプロンプトを示します。
は、それが頭の痛みのようなものすることができ、これは誰のためにお役に立てば幸い!
いmicmdk..また開発環境セットアッププッシュ通知を受け、必要にリセット通話のように見えるのは、初期インストールとは---これだけで精密な手順たのに---が必要に再起動デバイス:
アップルテックのメンバー
リセットのプッシュ通知アクセス権に関する注意喚起iOS 最初に押し可能なアプリ登録のためのプッシュ通知ミュレーションソフトウェアを求めるユーザをご希望される場合には通知を受け取るアプリです。ユーザーからなるこのアラートでもない限り、デバイスが復旧するまたはアプリのアンインストールされていく。
したい場合をシミュレーション初めてのアプリ、アプリのアンインストールがあります。で表現できる後者のなしを実際に待ってる日以下のから確認することができます
削除アプリからの装置です。
のセキュリティを完全にしてください。
への設定に合わせて[設定]>[一般]>[日時および設定日の前日。
の装置を完全に戻してください。
私は過去にこのことについて疑問に思い、それは実際に私のコードの有効なテストケースではなかったという結論に達しましたしています。私はあなたのアプリケーションのコードが実際に初めて通知を衰退以降のiPhoneの通知設定からそれを無効に誰かの違いを伝えることができるとは思いません。ユーザーエクスペリエンスが異なっていることは事実ですが、それはregisterForRemoteNotificationTypesへの呼び出しの中に隠されています。
完全通知設定からアプリケーションを削除しませんunregisterForRemoteNotificationsを呼び出す - それは、そのアプリケーションの設定内容を削除しないのに。だから、これはまだダイアログは、ユーザーに次の時間を秒の時間を提示されることはありません(私は現在でテストしていない、少なくともv3.1.3上)アプリが実行されます。しかし、私はあなたの上に言うと、おそらくそれを心配するべきではありません。
同じテックとして注目を参照するための受け答え(TN2265-トラブルシューティングプッシュ通知) で更新されたソリューションのiOS5以上です。
短:をバックアップと復元です。
IOS5以降、リセットのプッシュ通知アラートアクセス権により回復のデバイスからのバックアップ(r.11450187).ここでは、このために効率的に:
- 利用にXcode主催者へのインストールアプリケーションの装置です。重要なことは、アプリをインストールに初めてせずに走行します。
- 利用iTunesバックアップします。
- のアプリです。プッシュ通知のアラートアクセス権が発表されます。
- したいときにリセットのプッシュ通知の権限のアラート、修復し、デバイスからのバックアップを作成したオプションを付けてください。
アップルテクニカルノートにはまた、あなたがプッシュ通知ダイアログをリセットするために、デバイスを復元することができます説明します。
それはあなたがまた、オプションを使用できることを言っていないデバイス自体(のiOS 5.xの)の「全般 - - >リセット>すべてのコンテンツと設定を消去」
。のほか、その答えのianolito.
同じ問題とアプリをダウンロードしました前年とを否定するプッシュ通知します。今のようにプッシュ通知、これらの手順た私にとってiOS7β.いポイント(s)がでしょう。
- 近を削除します。
- 自分のiCloudの設定や削除を行うアプリからのiCloud.このすべてのその他のデバイスまでiCloudのバックアップアプリケーションを有効にします。後停止および削除してリンクを表示しております。アプリをすべきでない場合のバックアップしております。(このはなぜか、テクニカルノートからのリンゴで記述されるianolitoが停止しましたiOS5以降、iCloudに導入されたiOS5およびその多くはiCloudのバックアップアプリケーションを有効にします。)
- 自分の時間を設定設定時間を1ヶ月以上。
- スイッチのiPhone off(リセット.
- ちょっと待ってほし、スイッチで再度アプリのダウンロードす。
- アプリケーションソフトを起動し、またはダイアログです。
- するアプリのバックアップしたも停止しています。訂正します。
神に感謝しない"消去全てのコンテンツや設定"で設定かす人がいる。
検索の時間後、および上記の提案と運、これは3.xの魅力のように働いたに+
override func viewDidLoad() {
super.viewDidLoad()
requestAuthorization()
}
func requestAuthorization() {
if #available(iOS 10.0, *) {
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { (granted, error) in
print("Access granted: \(granted.description)")
}
} else {
// Fallback on earlier versions
}
}