콘텐츠로 건너뛰기

Pushwoosh의 디바이스 식별자 이해하기

Pushwoosh에 등록된 특정 디바이스를 식별하는 방법에는 하드웨어 ID(HWID)와 푸시 토큰의 두 가지가 있습니다.

HWID(하드웨어 ID)는 Pushwoosh SDK가 디바이스에 할당하는 핵심 식별자입니다.

Android HWID

Anchor link to

Android 디바이스의 경우, HWID는 디바이스에 설치된 Pushwoosh SDK가 포함된 첫 번째 앱에 의해 생성되는 임의의 문자와 숫자 집합입니다. 이후 Pushwoosh SDK가 포함된 다른 앱과 공유되어 결과적으로 모든 해당 앱이 동일한 HWID를 갖게 됩니다.

하지만 사용자가 Pushwoosh SDK가 포함된 모든 앱을 삭제한 후 일부를 다시 설치하면 새로운 HWID가 다시 생성됩니다.

Android HWID 예시: 5dcaed99-e1e0-44dc-bde2-b96188b99e9e

iOS 디바이스의 경우, IDFV(Identifier for Vendor)가 디바이스의 HWID로 사용됩니다. 동일한 공급업체의 앱이 하나 이상 디바이스에 설치되어 있는 한 변경되지 않습니다.

iOS HWID 예시(대문자만 사용!): CBAF8ED1-17FB-49A3-73BD-DC79B63AEF93

푸시 토큰

Anchor link to

푸시 토큰(디바이스 토큰)은 Apple 또는 Google 푸시 알림 게이트웨이에서 발급하는 앱-디바이스 조합을 위한 고유 키입니다. 이를 통해 게이트웨이와 푸시 알림 제공업체는 메시지를 라우팅하고 의도된 고유한 앱-디바이스 조합으로 알림이 전달되도록 보장할 수 있습니다.

iOS 푸시 토큰

Anchor link to

iOS 디바이스 푸시 토큰은 64개의 16진수 기호로 구성된 문자열입니다. iOS 푸시 토큰 예시: 03df25c845d460bcdad7802d2vf6fc1dfde97283bf75cc993eb6dca835ea2e2f

Android 푸시 토큰

Anchor link to

Android 디바이스 푸시 토큰은 길이가 다를 수 있으며(보통 255자 미만) 일반적으로 APA91b…로 시작하지만, 콜론으로 구분된 접두사가 있을 수도 있습니다. Android 푸시 토큰 예시: APA91bFoi3lMMre9G3XzR1LrF4ZT82_15MsMdEICogXSLB8-MrdkRuRQFwNI5u8Dh0cI90ABD3BOKnxkEla8cGdisbDHl5cVIkZah5QUhSAxzx4Roa7b4xy9tvx9iNSYw-eXBYYd8k1XKf8Q_Qq1X9-x-U-Y79vdPq

디바이스에서 로그, HWID, 푸시 토큰 수집하기

Anchor link to

먼저, 앱의 소스 코드에 접근할 수 있는 경우 앱의 Pushwoosh_LOG_LEVELVERBOSE로 설정되어 있는지 확인하세요. 이를 위해 Info.plist 파일에서 Pushwoosh_LOG_LEVEL 문자열 키를 확인합니다. 그렇지 않은 경우 다음 단계로 건너뛰세요. 이 키에 사용할 수 있는 값은 다음과 같습니다:

  • NONE - SDK에서 로그 없음
  • ERROR - 콘솔에 오류만 표시
  • WARNING - 경고도 표시
  • INFO - 정보 메시지 추가
  • DEBUG - 디버그 정보 추가
  • VERBOSE - SDK의 모든 로그

VERBOSE 키 값을 사용하면 Pushwoosh SDK가 등록 작업과 관련된 중요한 정보를 표시할 수 있습니다.

  1. 다음으로, 디바이스를 Mac에 연결하고 Xcode를 실행합니다. Window->Device and Simulators로 이동합니다.
연결된 iOS 디바이스를 보여주는 Xcode Devices and Simulators 창
  1. 열린 창에서 연결된 디바이스를 선택하고 왼쪽 하단의 위쪽 삼각형을 클릭하여 디바이스 콘솔을 봅니다:
위쪽 삼각형 버튼이 강조 표시된 Xcode 디바이스 콘솔 뷰

Xcode 9.3 버전부터 디바이스 콘솔 로그를 얻는 과정이 약간 변경되었습니다. Launchpad로 이동하여 “콘솔” 애플리케이션을 시작하기만 하면 됩니다. 왼쪽 사이드바에서 디바이스를 선택하세요. 이것으로 끝입니다!

왼쪽 사이드바에서 연결된 iOS 디바이스가 선택되고 디바이스 로그가 표시된 macOS 콘솔 애플리케이션
  1. 다음으로, 디바이스에서 앱을 시작하고 대화 상자 창을 기다립니다. 앱에 대한 푸시 알림을 허용합니다.

  2. 이 단계가 끝나면 콘솔 창에서 전체 디바이스 로그를 선택하여 텍스트 편집기에 복사합니다.

찾고 있는 것은 /registerDevice Pushwoosh API 요청입니다:

hwid와 push token 파라미터가 보이는 registerDevice API 요청을 보여주는 디바이스 콘솔 로그

디바이스가 올바르게 등록된 경우, 이 요청에는 “hwid”와 “push token” 값을 포함한 다음 파라미터가 포함되어야 합니다:

예시
x
| Pushwoosh request:
| Url: https://D868A-C13C1.api.pushwoosh.com/json/1.3/registerDevice
| Payload: {"request":{"gateway":"production","jailbroken":0,"app_version":"1.9","application":"D868A-C13C1","sounds":["bubble.wav"],"device_type":1,"userId":"1457691684303547","language":"en","hwid":"FBCA07FE-05EE-4770-B4BA-AB6737BC1A98","package":"com.pushwoosh.pushon","timezone":"25200","push_token":"ae784019d1b8c8e38a1ea06f0800c17a4fa986d6e2d346fc79373e92439ff8f7","os_version":"11.2.2","v":"5.5.1","device_model":"iPhone7,1"}}
| Status: "200 no error"
| Response: {"status_code":200,"status_message":"OK","response":{"iosCategories":[{"categoryId":0,"buttons":[{"id":"33389","label":"test","type":"0","startApplication":0},{"id":"1233","label":"ajhdkj","type":"1","startApplication":0}]}]}}
x

디바이스의 푸시 토큰이 포함된 알림도 표시되어야 합니다:

<Notice>: [PW] [I] -[PWPushNotificationsManagerCommon] Registered for push notifications: ae784019d1b8c8e38a1ea06f0800c17a4fa986d6e2d346fc79373e92439ff8f7
  1. 앱의 소스 코드에 접근할 수 있는 경우, Pushwoosh 로그 레벨이 NOISE로 설정되어 있는지 확인하세요. 이를 위해 AndroidManifest.xml에 값이 NOISEcom.pushwoosh.log_level 메타 데이터를 추가합니다.

  2. 다음으로, Mac/PC에서 Android Studio를 실행하고 Tools -> Android -> Android Device Monitor로 이동합니다.

연결된 Android 디바이스를 보여주는 Android Studio의 Android Device Monitor 창
  1. 디바이스를 Mac/PC에 연결하고 앱을 실행합니다. 약 30초 정도 기다린 후, 콘솔 창에서 전체 디바이스 로그를 선택하여 텍스트 편집기에 복사합니다.
registerDevice 요청이 보이는 Android Device Monitor 콘솔 로그 창

최신 버전의 Android Studio에서는 Logcat 도구를 사용하여 디바이스 콘솔 로그를 얻을 수도 있습니다. Android Studio를 실행하고 View -> Tool Windows -> Logcat으로 이동하세요:

View 메뉴에서 접근한 Logcat 도구 창을 보여주는 Android Studio 인터페이스

그 후, Logcat 창에서 디바이스 로그를 찾을 수 있습니다:

registerDevice API 요청이 보이는 Android Studio Logcat 창

아래는 디바이스 콘솔 로그 내에서 Pushwoosh /registerDevice API 요청이 어떻게 보이는지에 대한 예시입니다:

hwid와 push token 파라미터가 강조 표시된 registerDevice API 요청을 보여주는 Android 디바이스 콘솔 로그

요청에서 “hwid”와 “push token” 파라미터 값을 찾으세요:

예시
[RequestManager]
x
| Pushwoosh request:
| Url: https://D868A-C13C1.api.pushwoosh.com/json/1.3/registerDevice
| Payload: {"request":{"application":"D868A-C13C1","hwid":"fc79efabee7649ec","v":"5.5.2","device_type":3,"userId":"fc79efabee7649ec","device_name":"Phone","language":"en","timezone":25200,"android_package":"com.pushwoosh.pushon","jailbroken":0,"device_model":"Sony F8332","os_version":"8.0.0","idfa":"d43ad490-4e6a-48a8-b8b9-f20b76fbf07b","app_version":"1.5","push_token":"dwMAeCRabUE:APA91bGSk8SqCSycxfltrWCV9KtXGo48-8qvNKfzHn758PW7lLXSi_Wd7y3gqw-lbexsjLwsaXStpELTJUAQVZ3ybNqAUmfw-we-62rTjpNbvBa4oPYTwaPCr3s4M05xNv8jGau-MeA_","sounds":"[]"}}
| Response: {"status_code":200,"status_message":"OK","response":null}
x
[RequestManager] registerDevice response success

푸시 토큰은 디바이스 등록 알림에 포함되어 있습니다:

I/Pushwoosh(12733): [DeviceRegistrar] Registered for pushes: dwMAeCRabUE:APA91bGSk8SqCSycxfltrWCV9KtXGo48-8qvNKfzHn758PW7lLXSi_Wd7y3gqw-lbexsjLwsaXStpELTJUAQVZ3ybNqAUmfw-we-62rTjpNbvBa4oPYTwaPCr3s4M05xNv8jGau-MeA_
03-30 14:45:10.539: D/PushOn(12733): Registered for push notifications

Chrome (데스크톱)

Anchor link to
  1. 웹사이트로 이동합니다.

  2. 페이지의 아무 곳이나 마우스 오른쪽 버튼으로 클릭하고 “Inspect”를 누릅니다.

'Inspect' 컨텍스트 메뉴 옵션이 보이는 Chrome 브라우저 개발자 도구
  1. 열린 창에서 “Application” 탭으로 이동합니다.

  2. 그런 다음 왼쪽 사이드바에서 IndexedDB -> Pushwoosh_SDK_Store -> keyValue를 선택합니다. 여기서 HWID와 푸시 토큰 파라미터를 찾습니다.

HWID와 푸시 토큰을 포함하는 Pushwoosh SDK Store와 keyValue가 있는 IndexedDB를 보여주는 Chrome 개발자 도구의 Application 탭

Chrome (모바일)

Anchor link to
  1. 모바일 디바이스를 컴퓨터에 연결합니다.

  2. 데스크톱 Chrome에서 chrome://inspect/#devices로 이동합니다.

  3. 모바일 Chrome에서 웹사이트를 엽니다.

  4. 모바일 Chrome에서 웹사이트가 열리면 데스크톱 Chrome 페이지 내에서 해당 페이지를 볼 수 있습니다. 아래 스크린샷을 참조하세요:

'Inspect' 버튼이 강조 표시된 연결된 모바일 디바이스를 보여주는 Chrome 원격 디버깅 페이지
  1. 위 스크린샷에서 강조 표시된 “Inspect” 버튼을 누릅니다.

  2. 다음 창이 데스크톱 Chrome에 나타납니다. 거기서 “Application” 탭 내에서 IndexedDB -> PUSHWOOSH_SDK_STORE를 엽니다. 그 후 keyValue를 클릭하고 API_PARAMS 섹션을 엽니다:

hwid와 푸시 토큰을 포함하는 API_PARAMS 섹션이 있는 PUSHWOOSH SDK STORE IndexedDB를 보여주는 Chrome 개발자 도구의 Application 탭

API_PARAMS 섹션에서 “hwid”와 “push token” 파라미터와 그 값을 찾을 수 있습니다.

  1. 웹사이트로 이동합니다.
  2. 페이지의 아무 곳이나 마우스 오른쪽 버튼으로 클릭하고 Inspect Element를 선택합니다.
  3. Storage 탭 -> Indexed Databases -> PUSHWOOSH_SDK_STORE -> keyValue로 이동합니다.
  4. API_PARAMS를 확장하고 여기서 “hwid”와 “push token” 값을 찾습니다.
hwid와 푸시 토큰을 포함하는 API_PARAMS가 있는 PUSHWOOSH SDK STORE keyValue Indexed Databases를 보여주는 Safari 개발자 도구의 Storage 탭