콘텐츠로 건너뛰기

테스트 푸시 디바이스 추가

Test Devices를 사용하여 앱 사용자에게 푸시 알림을 보내기 전에 디바이스에서 어떻게 보이는지 미리 볼 수 있습니다. 이를 위해서는 (앱이 설치된) 디바이스를 테스트 디바이스로 등록해야 합니다.

테스트 디바이스를 추가하려면:

  1. Pushwoosh 계정의 Test devices 섹션으로 이동합니다.
Pushwoosh 계정의 테스트 디바이스 섹션
  1. 오른쪽 상단의 Create test device 드롭다운 버튼을 클릭하고 Push를 선택합니다.
테스트 디바이스 섹션의 Push 옵션이 있는 테스트 디바이스 생성 드롭다운 버튼

푸시 테스트 디바이스는 QR 코드를 사용한 자동 구성, 앱에서 등록, 또는 수동 구성의 세 가지 방법 중 하나를 사용하여 추가할 수 있습니다.

테스트 디바이스 자동 추가

Anchor link to

이 방법은 iOS 및 Android 디바이스에만 적합합니다.

첫 등록 전에, 테스트 디바이스를 위한 딥 링크 처리를 앱에 추가해야 합니다. 이는 일반적으로 Pushwoosh SDK 통합과 함께 수행되는 일회성 설정입니다:

  • Android의 경우: AndroidManifest.xml 파일에 DeepLinkActivity를 추가합니다.
  • iOS의 경우: Info.plist 파일에 pushwoosh-YOUR_PUSHWOOSH_APP_ID URL 스킴을 추가합니다.

구현 섹션에서 Android 및 iOS에 대한 지침을 따르세요.

이 작업이 완료되면, 디바이스를 등록하려면:

  1. Test Devices 섹션에서 Create test device를 클릭하고 Push를 선택합니다.
  2. 팝업에 나타나는 QR 코드를 QR 스캐너 앱으로 스캔합니다. 이렇게 하면 Pushwoosh SDK가 파싱하여 디바이스를 테스트 디바이스로 등록하는 딥 링크가 열립니다.
왼쪽에 자동 구성 QR 코드가 있고 오른쪽에 HWID용 수동 구성 필드가 있는 테스트 디바이스 추가 대화 상자

앱에서 테스트 디바이스 등록

Anchor link to

위의 QR 코드 방법과 별개로, Pushwoosh SDK는 현재 디바이스를 자체적으로 테스트 디바이스로 등록할 수 있습니다: 30초 이내에 앱을 백그라운드로 보냈다가 다시 포그라운드로 6번 가져오면 됩니다. 스캔이나 수동 입력이 필요하지 않습니다.

의도하지 않은 등록을 방지하기 위해, 이 기능은 1시간의 등록 창이 열려 있는 동안에만 작동합니다.

  1. Test Devices 섹션에서 Add test devices from the app 토글을 켭니다. 이렇게 하면 1시간 동안 창이 열립니다.
앱에서 테스트 디바이스 추가 토글과 테스트 디바이스 생성 버튼이 있는 테스트 디바이스 페이지 헤더
  1. 창이 열려 있는 동안, 30초 이내에 앱을 6번 백그라운드와 포그라운드로 전환합니다. 디바이스가 Test Devices 목록에 추가됩니다.

테스트 디바이스 수동 추가

Anchor link to

테스트 디바이스를 수동으로 등록하려면 다음 단계를 따르세요:

  1. 성공적인 /registerDevice API 호출에서 디바이스의 **하드웨어 ID(HWID)**를 얻습니다.
  2. 필수 필드를 채웁니다:
    • 디바이스 이름: 테스트 디바이스에 대한 설명적인 이름 (예: “John의 Android”).
    • 디바이스 HWID: 디바이스의 고유한 하드웨어 ID.
    • 디바이스 유형: 플랫폼을 선택합니다 (예: iOS, Android, Web).
    • 설명(선택 사항): 참조용으로 디바이스에 대한 메모나 세부 정보를 추가합니다.
  3. 저장을 클릭하여 테스트 디바이스를 등록합니다.

등록이 완료되면, 테스트 디바이스는 Test Devices 섹션에서 사용할 수 있습니다.

API를 통한 테스트 디바이스 등록

Anchor link to

수동 양식 대신 스크립트나 CI 파이프라인에서 테스트 디바이스를 프로비저닝하려면, 디바이스의 푸시 토큰으로 createTestDevice를 호출하세요. 이는 수동 양식에서 사용되는 HWID가 아니며, 성공적인 /registerDevice 호출 등 동일한 방식으로 얻은 다른 식별자입니다. listTestDevices는 애플리케이션에 이미 등록된 내용을 반환합니다.

  1. 애플리케이션에 Pushwoosh SDK를 통합합니다.

  2. _AndroidManifest.xml_에 DeepLinkActivity를 추가합니다:

<activity
android:name="com.pushwoosh.DeepLinkActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="pushwoosh-YOUR_PUSHWOOSH_APP_ID" />
</intent-filter>
</activity>

위의 xml에서 _YOUR_PUSHWOOSH_APP_ID_를 Pushwoosh 앱 ID로 바꾸는 것을 잊지 마세요.
예: <data android:scheme=“pushwoosh-ABCDE-EDCBA” />

  1. 애플리케이션을 실행하여 푸시 알림을 구독합니다.

  2. Test Devices 양식의 QR 코드를 적절한 QR 코드 스캐너 앱*으로 스캔합니다. 테스트 디바이스 등록 상태를 나타내는 토스트 메시지가 나타납니다.

  1. 애플리케이션에 Pushwoosh SDK를 통합합니다.

  2. Info.plist 파일에 pushwoosh-YOUR_PUSHWOOSH_APP_ID URL 스킴을 추가합니다:

<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>com.pushwoosh.scheme</string>
<key>CFBundleURLSchemes</key>
<array>
<string>pushwoosh-YOUR_PUSHWOOSH_APP_ID</string>
</array>
</dict>
</array>

위의 XML에서 _YOUR_PUSHWOOSH_APP_ID_를 Pushwoosh 앱 ID로 바꾸는 것을 잊지 마세요.
예: pushwoosh-ABCDE-EDCBA

Info.plist

Info.plistUIApplicationSceneManifest를 추가하세요.
<key>UIApplicationSceneManifest</key>
<dict>
<key>UIApplicationSupportsMultipleScenes</key>
<true/>
<key>UISceneConfigurations</key>
<dict>
<key>UIWindowSceneSessionRoleApplication</key>
<array>
<dict>
<key>UISceneConfigurationName</key>
<string></string>
<key>UISceneDelegateClassName</key>
<string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>
</dict>
</array>
</dict>
</dict>

SceneDelegate

아래 예시와 같이 SceneDelegate 코드를 추가하세요.
import SwiftUI
@main
struct DemoApp: App {
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
class SceneDelegate: NSObject, UIWindowSceneDelegate {
var window: UIWindow?
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
guard let _ = (scene as? UIWindowScene) else { return }
}
}
class AppDelegate: NSObject, UIApplicationDelegate, PWMessagingDelegate {
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
let sceneConfig: UISceneConfiguration = UISceneConfiguration(name: nil, sessionRole: connectingSceneSession.role)
sceneConfig.delegateClass = SceneDelegate.self
return sceneConfig
}
}
  1. 애플리케이션을 실행하여 푸시 알림을 구독합니다.

  2. Test Devices 양식의 QR 코드를 적절한 QR 코드 스캐너로 스캔합니다.