앱에 대한 푸시 알림 설정 재설정
푸시 알림이 있는 앱을 개발하고 있습니다.가능한 모든 사용자 상호 작용 방법을 확인하기 위해 사용자가 첫 번째 시작 시 앱에 푸시 알림을 사용하지 않을 때 앱을 테스트하려고 합니다.
"에 의해 됨")registerForRemoteNotificationTypes 한 됩니다.), 사용자 이름은 다음과 같습니다.아이폰 OS의 내 앱 메모리를 재설정하려면 어떻게 해야 합니까?앱을 삭제하고 다시 설치하는 것은 도움이 되지 않습니다.
푸시 지원 앱이 푸시 알림을 위해 처음 등록할 때 iOS는 사용자에게 해당 앱에 대한 알림을 받을지 여부를 묻습니다.사용자가 이 경고에 응답하면 장치가 복원되거나 앱이 최소 하루 동안 제거되지 않으면 경고가 다시 표시되지 않습니다.
앱의 처음 실행을 시뮬레이션하려면 하루 동안 앱을 제거한 상태로 둘 수 있습니다.시스템 시계를 하루 이상 앞당기고 장치를 완전히 끈 다음 다시 켜면 실제로 하루를 기다리지 않고 후자를 달성할 수 있습니다.
업데이트: 아래 댓글에서 언급한 것처럼, 이 솔루션은 iOS 5.1 이후 작동하지 않습니다.애플이 문서를 업데이트할 수 있도록 애플에 버그를 제출할 것을 권장합니다.현재 솔루션은 장치의 콘텐츠와 설정을 재설정하는 것 같습니다.
업데이트: iOS 7에서 올바르게 작동하는 새로운 단계로 기술 노트가 업데이트되었습니다.
- 단말기에서 앱을 삭제합니다.
- 장치를 완전히 껐다가 다시 켭니다.
- Settings > General > Date & Time 으로 이동하여 날짜를 하루 이상 앞당기시면 됩니다.
- 장치를 다시 완전히 껐다가 다시 켭니다.
iOS 9 이후 업데이트
설치하기만 설정됩니다.notDetermined(즉, 프롬프트가 나타납니다.)
아래 Gomfucius의 답변 덕분에: https://stackoverflow.com/a/33247900/704803
이에 대한 또 다른 테스트 솔루션은 단순히 번들 ID를 변경하는 것입니다.끝나면 다시 바꾸는 것을 잊지 마세요!
iOS 9.0.2에서는 앱을 삭제하고 다시 설치할 때마다 "register push notification alert(등록 푸시 알림)"이 표시됩니다.이는 AppStore 프로덕션 다운로드 및 애드혹 모드 모두에 해당됩니다.
업데이트: iOS 9.x에서 작동하는 것으로 확인되었습니다.
이미 언급한 바와 같이 기기의 앱에 대한 알림 상태를 재설정하는 접근 방식은 iOS5 버전으로 변경되었습니다.
이것은 iOS6에서 작동합니다.
- 단말기에서 앱 제거
- 장치 날짜 시간을 2일 이상 앞당기도록 설정
- 장치 다시 시작
- 장치 날짜 시간을 2일 이상 앞당기도록 설정
- 장치 다시 시작
- 앱 설치 및 다시 실행
그러나 이렇게 하면 초기 프롬프트가 다시 나타날 뿐 다른 푸시 상태 관련 항목은 제거되지 않습니다.
플리스트: /private/var/mobile/라이브러리/원격 알림/클라이언트.플리스터
푸시 알림에 등록된 클라이언트를 포함합니다.앱의 항목을 제거하면 프롬프트가 다시 나타납니다.
프로그래밍 방식으로 하는 것은 매번 저에게 효과가 있는 것 같습니다.다음 줄이 언급되지 않은 빌드가 있습니다.
[[UIApplication sharedApplication] unregisterForRemoteNotifications];
저는 PN에서 등록을 취소하고 싶을 때마다 실행합니다.최근 목록에서 앱을 명시적으로 종료하고 설정 앱에서 Notification Center를 사용하여 올바르게 실행해야 할 수도 있습니다.
또한 사용자에게 PN 등록을 요청하는 UI 프롬프트가 표시되지 않을 수 있습니다.최신 iOS 버전에서 사용할 수 없도록 설정되었는지 확실하지 않습니다.
저는 micmdk에 동의합니다.Push Notifications를 사용하여 개발 환경을 설정했는데 초기 설치처럼 보이도록 전화기를 재설정하는 방법이 필요했습니다. 이 정확한 단계만 성공했습니다. 두 번의 장치 재부팅이 필요합니다.
APPLE TECH DOC에서:
iOS에서 Push Notifications Permissions Alert 재설정 Push-Enabled 앱이 Push 알림을 위해 처음 등록할 때, iOS는 사용자에게 해당 앱에 대한 알림을 받기를 원하는지 묻습니다.사용자가 이 경고에 응답하면 장치가 복원되거나 앱이 최소 하루 동안 제거되지 않으면 경고가 다시 표시되지 않습니다.
앱의 처음 실행을 시뮬레이션하려면 하루 동안 앱을 제거한 상태로 둘 수 있습니다.다음 단계를 수행하면 실제로 하루를 기다리지 않고 후자를 달성할 수 있습니다.
단말기에서 앱을 삭제합니다.
장치를 완전히 껐다가 다시 켭니다.
Settings > General > Date & Time 으로 이동하여 날짜를 하루 이상 앞당기시면 됩니다.
장치를 다시 완전히 껐다가 다시 켭니다.
이아놀리토가 말했듯이, 날짜를 정하는 것은 효과가 있을 것입니다.
시스템 시계를 하루 이상 앞당기고 장치를 완전히 끈 다음 다시 켜면 실제로 하루를 기다리지 않고 후자를 달성할 수 있습니다.
장치(iPhone 4, iOS 6.1.2)에서 시스템 시계를 하루 앞당기거나 며칠 동안 설정해도 작동하지 않습니다.그래서 저는 날짜를 한 달 앞당겼고, 그것은 효과가 있었고 제 애플리케이션은 다시 알림 프롬프트를 보여주었습니다.
이것이 누구에게나 도움이 되기를 바랍니다, 그것은 일종의 두통이 될 수 있습니다!
저는 과거에 이것에 대해 의문을 품었고 실제로 제 코드에 대한 유효한 테스트 사례가 아니라는 결론에 도달했습니다.처음에 알림을 거부하는 것과 나중에 아이폰 알림 설정에서 알림을 비활성화하는 것 사이에 응용 프로그램 코드가 실제로 차이를 구분할 수 있다고 생각하지 않습니다.사용자 환경이 다른 것은 사실이지만 원격 알림에 등록하기 위한 통화 내부에 숨겨져 있습니다.종류들.
unregisterForRemoteNotifications를 호출해도 해당 응용 프로그램의 설정 내용이 제거되지만 알림 설정에서 응용 프로그램이 완전히 제거되지는 않습니다.따라서 다음 번에 앱을 실행할 때(최소한 현재 테스트 중인 v3.1.3에서는 아님)에도 대화 상자가 두 번 표시되지 않습니다.하지만 제가 위에서 말했듯이, 여러분은 아마 그것에 대해 걱정하지 않아도 될 것입니다.
승인된 답변(TN2265 - Push Notifications 문제 해결)에 언급된 것과 동일한 기술 노트가 이후 iOS 5 이상용 솔루션으로 업데이트되었습니다.
간단히 말해서, 매번 백업을 생성하고 백업에서 복원합니다.
iOS 5 이상에서는 백업에서 장치를 복원하여 푸시 알림 권한 경보를 재설정합니다(r. 11450187).이를 효율적으로 수행하기 위한 단계는 다음과 같습니다.
- Xcode Organizer를 사용하여 장치에 앱을 설치합니다.앱을 실행하지 않고 처음으로 설치하는 것이 핵심입니다.
- iTunes를 사용하여 장치를 백업합니다.
- 앱을 실행합니다.푸시 알림 권한 경고가 표시됩니다.
- 푸시 알림 권한 알림을 재설정하려면 첫 번째 단계에서 생성한 백업에서 장치를 복원합니다.
또한 Apple 기술 노트에서는 장치를 복원하여 Push Notification(알림 밀어넣기) 대화 상자를 재설정할 수 있습니다.
기기 자체(iOS 5.x)에서도 "일반 -> 재설정 -> 모든 콘텐츠 및 설정 지우기" 옵션을 사용할 수 있다는 내용은 없습니다.
저는 최근에 반응 네이티브 애플리케이션과 유사한 문제에 부딪혔습니다.아이폰 OS 버전은 13.1 앱을 제거하고 앱을 설치하려고 했는데 위치와 알림 권한이 모두 표시되지 않았습니다.
설정을 확인할 때 이전 설치에서 응용 프로그램이 위치에 대해 활성화되었음을 알 수 있었지만 시간을 설정하지 않고 제거 및 재부팅을 시도했습니다.라는 알림에 해당하는 항목이 없습니다.그나저나, 저도 앱스토어 앱을 다운받으려고 했는데, 여전히 같은 행동입니다.
장치 시간을 설정한 후에만 문제가 해결되었습니다.
이아놀리토의 대답에 더하여.
1년 전에 다운로드한 앱에서도 동일한 문제가 발생했으며 처음에는 푸시 알림을 거부했습니다.이제 푸시 알림이 다시 필요한 이 단계들은 iOS 7 베타에서 저에게 효과가 있었습니다.정확히 어느 지점에서 트리거했는지 알 수 없습니다.
- 앱을 닫고 삭제합니다.
- iCloud 설정으로 이동하여 iCloud에서 앱을 삭제합니다.앱에 대한 iCloud 백업을 사용하도록 설정한 다른 모든 장치에서 이 작업을 수행합니다.비활성화하고 삭제한 후 새 백업을 만듭니다.앱이 백업 아래에 더 이상 나열되지 않아야 합니다.(이것이 아마 ianolito가 설명한 Apple의 기술 노트가 iOS 5에서 작동하지 않게 된 이유일 것입니다. iCloud가 iOS 5에 도입되었고 많은 앱에서 iCloud 백업을 활성화했기 때문입니다.)
- 시간 설정으로 이동하여 시간을 1개월 이상 앞당기십시오.
- iPhone을 끕니다(재설정 안 함).
- 잠시만요, 다시 켜고 앱을 다시 다운로드하세요.
- 앱을 시작하면 대화상자가 다시 나타납니다.
- 앱 백업은 여전히 비활성화되어 있으므로 다시 활성화합니다.시간을 수정합니다.
"모든 콘텐츠 및 설정을 삭제"할 필요가 없어서 다행입니다.아마도 누군가에게 도움이 될 것입니다.
몇 시간 동안 검색했지만 위의 제안과 일치하지 않아 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
}
}
언급URL : https://stackoverflow.com/questions/2438400/reset-push-notification-settings-for-app
'codememo' 카테고리의 다른 글
| ARC로? ARC로?장점과 단점은 무엇입니까? (0) | 2023.06.02 |
|---|---|
| 오토매퍼: "나머지는 무시하세요"? (0) | 2023.06.02 |
| 그룹화된 테이블 뷰 셀의 배경/경계 색상을 사용자 지정하는 방법은 무엇입니까? (0) | 2023.06.02 |
| 레일에 매개변수가 있는지 테스트하는 방법 (0) | 2023.06.02 |
| Zure 연결 문자열 모범 사례 (0) | 2023.06.02 |