개요
OneSignal은 사이트에 Web SDK가 활성화되어 있을 때 브라우저의 개발자 도구 콘솔에 자세한 오류 메시지를 제공합니다. 문제 해결 전에 Web SDK 설정을 다시 확인하여 다음을 확인하세요:- OneSignal JavaScript 스니펫이 사이트의 <head>에 배치되어 있습니다.
- 서비스 워커 파일이 루트에 올바르게 배치되어 있고 HTTPS를 통해 액세스할 수 있습니다.
초기 문제 해결 단계
1
깨끗한 브라우저 프로필에서 테스트
새 브라우저 프로필에서 웹사이트를 엽니다.
- Chrome 또는 Firefox의 최신 버전을 사용합니다.
- 푸시는 시크릿/비공개/게스트 모드에서 작동하지 않습니다.
- 지원되는 브라우저 목록을 확인합니다.
2
브라우저 개발자 도구 열기
F12를 누르거나 마우스 오른쪽 버튼을 클릭하고 “검사”를 선택하거나 보기 > 개발자 > JavaScript 콘솔로 이동하여 개발자 콘솔을 시작합니다.
3
구독 시도 및 오류 관찰
사이트를 구독하고 콘솔에서 오류를 확인합니다. 그런 다음 지침에 대해 오류를 아래 목록과 대조합니다.

브라우저의 개발자 도구를 열고 오류를 검사하세요
일반적인 오류 메시지 및 해결책
서비스 워커 오류(403, 404)
[Service Worker Installation] Installing service worker failed TypeError: Failed to register a ServiceWorker for scope (‘
https://www.yoursite.com/’) with script (‘https://www.yoursite.com/...’): A bad HTTP response code (403) was received when fetching the script.
서비스 워커 설치 오류 예시
- 파일 가용성 확인
- 브라우저에서 서비스 워커 파일 URL을 방문합니다. OneSignal 대시보드 설정 > 푸시 및 인앱 > 웹에서 경로를 찾을 수 있습니다.
- 예시 경로:
- https://yoursite.com/OneSignalSDKWorker.js
- https://yoursite.com/push/onesignal/OneSignalSDKWorker.js
 
- WordPress를 사용하는 경우 경로는 다음과 같습니다:
- https://yoursite.com/wp-content/plugins/onesignal-free-web-push-notifications/sdk_files/OneSignalSDKWorker.js
 
- 403/404를 반환하거나 리디렉션하는 경우 푸시 설정이 작동하지 않습니다.
- 파일 이름은 대소문자를 구분하며 공개적으로 액세스할 수 있어야 합니다.
올바른 설정을 확인하려면 서비스 워커 설정 가이드를 참조하세요.
지원되지 않는 MIME 유형
- 서비스 워커는 application/javascript로 제공되어야 합니다.
- 다른 MIME 유형(예: text/html)으로 파일을 제공하면 등록이 실패합니다.

서비스 워커의 MIME 유형 오류
리디렉션이 허용되지 않음
- OneSignal SDK 파일은 리디렉션하면 안 됩니다.
- 사이트와 동일한 원본에 호스팅되어야 합니다(CDN 또는 프록시 도메인 없음).

콘솔의 리디렉션 오류
웹 푸시 구성은 올바른 사이트 원본에서만 사용할 수 있음
- 현재 도메인이 OneSignal 대시보드에 구성된 사이트 URL과 일치하지 않습니다.
- 프로토콜, 도메인 및 하위 도메인이 정확히 일치해야 합니다.

사이트 원본 불일치 오류
OneSignal이 이미 정의됨
- SDK가 두 번 이상 초기화되었으며, 종종 WordPress 플러그인 설정과 수동 코드를 결합하여 발생합니다.

중복 SDK 초기화 오류
모바일 웹 푸시 문제 해결
iOS - 요구 사항에 대해서는 iOS의 Safari 웹 푸시를 참조하세요. Android - 웹 푸시는 지원되는 브라우저를 사용하는 Android 모바일 기기에서 자동으로 작동합니다.- 모바일에서 테스트하기 전에 먼저 사이트가 데스크톱에서 작동하는지 확인합니다.
- Android 웹에서 이미 구독되어 있을 수 있지만 대시보드는 모바일 웹 구독자를 데스크톱 웹 구독자와 구분하지 않습니다. Android 웹 구독자는 “구독” 페이지의 기기 열에 Linux armv8l로 표시됩니다.
- 브라우저 앱에서 알림이 활성화되어 있는지 확인합니다. 예를 들어 Android 설정 > 애플리케이션 관리자 > Chrome에서 Chrome을 확인합니다. “알림 표시”가 선택되어 있는지 확인합니다.
- 캐시를 지웁니다. 모바일에서 브라우저 캐시가 가득 차면 추가 프롬프트나 구독이 허용되지 않을 수 있습니다.
- 일부 사용자는 브라우저 앱을 제거하고 다시 설치하면 프롬프트가 표시되지 않는 문제가 해결되었다고 보고했습니다.
Safari 문제 해결
- 
Safari 구성에 설정된 사이트 URL은 사이트를 방문할 때 표시되는 것과 정확히 일치해야 합니다. 예를 들어 브라우저에서 https://www.yoursite.com이 표시되면 이를 설정 필드에 추가해야 합니다. www 및 비-www 사이트는 다른 원본입니다.
- Safari 12.1+은 사용자가 프롬프트를 받기 전에 사이트에서 일부 작업을 수행해야 한다는 새 규칙을 만들었습니다
- 마지막으로 캐시 지우기 및 푸시 권한 재설정을 시도하여 사이트를 처음 사용하는 사용자로 보고 다시 구독해 보세요.
Safari 아이콘 또는 사이트 이름이 변경되지 않음
Safari의 사용자 지정 웹 푸시 구현으로 인해 사이트 이름 및 아이콘 이미지는 사용자 컴퓨터에 로컬로 다운로드되고 저장되는 정적 리소스로 처리됩니다. 새 사이트 이름과 새 이미지는 업데이트되거나 다운로드되지 않습니다. 안타깝게도 이러한 이전 리소스로 구독한 사람은 캐시 지우기 및 푸시 권한 재설정을 하고 사이트로 돌아가서 다시 구독해야 합니다.캐시 지우기 및 푸시 권한 재설정
자세한 내용은 캐시 지우기 및 푸시 권한 재설정을 참조하세요.브라우저 개발자 도구를 사용한 디버깅
브라우저의 개발자 도구를 사용하여 웹 페이지의 웹 SDK와 상호 작용하고 로깅을 활성화하거나 쉽게 테스트 알림을 보낼 수 있습니다.1
브라우저 개발자 도구 콘솔 액세스

개발자 콘솔 액세스
- Chrome: 페이지를 마우스 오른쪽 버튼으로 클릭하고 검사를 클릭한 다음 열리는 팝업 창의 Console 탭을 클릭합니다.
- Firefox: 페이지를 마우스 오른쪽 버튼으로 클릭하고 요소 검사를 클릭한 다음 열리는 팝업 창의 Console 탭을 클릭합니다.
- Safari: Safari → 환경설정 → 고급으로 이동하여 메뉴 막대에서 개발자용 메뉴 보기가 선택되어 있는지 확인합니다. 그런 다음 웹 페이지에서 마우스 오른쪽 버튼을 클릭하고 요소 검사를 클릭한 다음 열리는 팝업 창의 Console 탭을 클릭합니다.
- Android의 Chrome: USB 디버깅 활성화를 하고 기기를 컴퓨터에 연결하고 데스크톱 Chrome 브라우저에서 chrome://inspect#devices로 개발자 도구에 액세스합니다.
- Android의 Firefox: USB 디버깅 활성화를 하고 기기를 컴퓨터에 연결하고 데스크톱 Firefox 브라우저에서 about:debugging으로 개발자 도구에 액세스합니다.
2
웹 SDK 로깅 활성화
이제 개발자 도구 콘솔에서 명령을 실행할 수 있어야 합니다.다음 코드를 실행합니다:결과로 OneSignal이 웹 페이지에서 활성화되어 있지 않거나 
undefined가 표시되어야 합니다.다음이 표시되면:Uncaught ReferenceError: OneSignal is not defined(…) ReferenceError: OneSignal
is not defined
top 프레임 컨텍스트로 전환해야 합니다(위의 스크린샷 참조).이제 웹 SDK의 디버그 로깅이 활성화되었으므로 탭을 닫고 동일한 페이지에 대한 새 탭을 엽니다(페이지를 새로 고치는 것만으로는 일부 SDK 이벤트를 트리거하기에 충분하지 않습니다). 콘솔에 많은 출력이 표시되어야 합니다.
자세한 SDK 로그가 있는 콘솔
3
구독 여부 확인
콘솔에서 실행:구독 여부에 따라 다음과 유사한 내용이 표시되어야 합니다:
4
테스트 알림 직접 보내기
구독한 경우에만(위의 섹션 참조) 테스트 알림을 보낼 수 있습니다. 자세한 내용은 테스트 구독 찾기 및 설정을 참조하세요.
- 운영 체제 수준에서 알림을 차단하지 않는지 확인하세요.
- 표시되지 않는 알림: 웹 푸시를 참조하세요.
Chrome 알림을 받지 못하는 경우 디버깅
참고: 이 단계를 순서대로 완료하세요.1
위의 1 - 4단계를 따라 테스트 알림 수신 시도
- 3단계의 경우 구독되어 있습니까? 그렇지 않은 경우 여기서 중지하고 이러한 특정 지침에 따라 사이트 데이터를 완전히 지웁니다. 그런 다음 알림을 받으려면 사이트를 다시 구독합니다. 실제로 구독되었는지 확인하려면 나중에 3단계를 다시 실행합니다. 사이트 데이터 지우기 지침을 따를 때 Chrome은 사이트의 모든 기존 탭이 닫힐 때까지 사이트의 스토리지에 액세스하지 못하도록 하므로 사이트의 모든 탭을 닫거나 브라우저를 다시 시작해야 합니다.
- 4단계의 경우 테스트 알림을 받습니까? 받았다면 완료입니다!
2
OneSignal 대시보드의 전달 페이지 확인
구독되어 있지만 테스트 알림을 받지 못한 경우 OneSignal 대시보드 전달 페이지를 방문하여 직접 보낸 테스트 알림이 맨 위에 표시되는지 확인하세요.
3
chrome://gcm-internals를 사용하여 메시지 전달 확인
구독되어 있고 테스트 알림을 받지 못했지만 메시지가 전달된 것으로 표시되는 경우(녹색으로 표시) Chrome에서 
chrome://gcm-internals를 엽니다.왼쪽 상단의 “Start Recording” 버튼을 클릭합니다. “Connection State: CONNECTED”가 표시되는지 확인합니다.이것을 열어 두고 푸시를 보냅니다(위의 4단계를 따라 테스트 알림을 보냅니다).받은 경우 “Receive Message Log”에서 무언가가 표시되어야 합니다.
GCM internals 로깅
- “Data msg received”가 표시되지 않으면 Chrome 브라우저가 알림을 전혀 받지 못하는 것입니다. 이에 대해 지원팀에 알려주세요.
- “Data msg received”가 표시되지만 여전히 알림을 받지 못한 경우 4단계로 진행합니다.
4
chrome://serviceworker-internals를 사용하여 서비스 워커 디버그
chrome://serviceworker-internals를 방문합니다.Scope: https://your-site.com을 검색합니다.아래와 같이 Inspect 또는 _Start -> Inspect_를 클릭합니다. Chrome 개발자 도구 팝업이 나타납니다.
서비스 워커 검사
OneSignalWorker.log.trace();를 실행합니다. undefined를 반환해야 합니다. 서비스 워커의 모든 메시지가 이제 이 팝업에 나타나야 합니다.5
콘솔 출력 캡처 및 지원팀에 문의
서비스 워커의 개발자 도구 팝업에서 기본 페이지의 개발자 도구 콘솔(2단계에서 사용한 것과 동일)로 다시 전환합니다.
테스트 알림을 다시 보냅니다. 여전히 알림이 표시되지 않으면 콘솔 출력에서 새 오류 또는 메시지를 검토합니다.
이 정보를 지원팀과 공유하려면:
- 콘솔 내부를 마우스 오른쪽 버튼으로 클릭합니다.
- 다른 이름으로 저장 …을 선택하여 로그 파일을 내보냅니다.
- 이 파일을 첨부하고 추가 지원을 위해 채팅 지원팀에 문의하세요.
도움이 필요하신가요?지원 팀과 채팅하거나 
support@onesignal.com으로 이메일을 보내주세요.다음을 포함해 주세요:- 발생한 문제의 세부 정보 및 재현 단계(가능한 경우)
- OneSignal 앱 ID
- External ID 또는 Subscription ID(해당하는 경우)
- OneSignal 대시보드에서 테스트한 메시지의 URL(해당하는 경우)
- 관련 로그 또는 오류 메시지