문제 해결 팁

다음은 문제가 생기거나 Push Notifications SDK 사용 시 오류가 발생할 때 유용한 일반적인 문제 해결 팁입니다.

일부 문제 해결 팁에는 특정한 일반 오류에 대한 언급이 나와 있을 수 있습니다. 그러나 이러한 문제가 발생하지 않더라도 순서대로 해결하는 것이 좋습니다.

1. (Android) Push Notifications 설정 내에서 Firebase 값 확인

Push Notifications SDK를 사용하면서 Firebase에 테스트 디바이스를 등록하려고 할 때 문제가 발생하면 Firebase 값이 비어 있거나 유효하지 않아서 문제가 발생한 것일 수 있습니다.

Firebase 세부 정보를 Push Notifications Settings 세그먼트에 추가하는 방법을 확인합니다.

또한 입력된 값이 정확하다면 값 뒤에 공백이 없는지 확인합니다. 공백이 있으면 문제가 발생합니다.

2. (EDM4U/MDR) Push Notifications SDK에 관한 종속성의 해결 여부 확인

EDM4U(External Dependency Manager for Unity) 및 MDR(Mobile Dependency Resolver)과 Push Notifications를 연동하는 사용자에게 해당하는 내용입니다.

EDM4U(External Dependency Manager for Unity) 지원 섹션에 언급된 바와 같이 Push Notifications SDK에서는 EDM4U(External Dependency Manager for Unity) 및 MDR(Mobile Dependency Resolver)을 필요로 하거나 번들화하지 않고 종속성을 해결합니다. 그러나 둘 중 하나를 사용하면 Push Notifications SDK가 연동됩니다.

다른 패키지에서 EDM4U 또는 MDR이 필요하지 않으면 삭제하는 것이 좋습니다.

삭제하지 않으려면 다음 단계를 따릅니다.

  1. 종속성 파일 PushSDKDependencies.xml이 생성되었는지 확인합니다. 이 파일을 자동 생성된 Assets/Push Notifications/Editor/Android 디렉토리에 넣습니다.
    • 파일이 보이지 않으면 Unity 프로젝트를 다시 엽니다. 해당 파일은 이 프로세스에서 생성되어야 하는 파일입니다.
  2. Assets > External Dependency Manager > Android Manager에서 확인할 수 있는 Resolve 또는 Force Resolve 옵션을 사용합니다.
  3. Push Notifications SDK의 종속성이 해결되었는지 확인하려면 Display Libraries 옵션을 사용합니다. 이는 Assets > External Dependency Manager > Android Manager에서 찾을 수 있습니다. 다음 줄이 표시됩니다.
    implementation 'com.google.firebase:firebase-messaging-ktx:22.0.0' // Assets/Push Notifications/Editor/Android/PushSDKDependencies.xml:9
    • 다른 패키지나 SDK에서 동일한 종속성을 사용하는 경우 위의 줄을 제외한 코멘트가 약간 다를 수 있다는 점을 참고하시기 바랍니다.

3. (Android) 빌드 프로세스 도중 Minify에서 Push Notifications SDK가 제외되는지 확인

EDM4U/MDR 문제 해결 섹션에 따라 진행했지만 여전히 다음 오류와 유사한 메시지가 표시되는 경우:

java.lang.ClassNotFoundException: com.unity.services.pushnotifications.android.UnityCallbackClass

Player Settings > Publishing > Minify에서 Minify 옵션을 확인합니다. Release 또는 Debug 체크박스가 선택되어 있고 릴리스/디버그 빌드에서 최소화 프로세스의 일환으로 Push Notifications SDK가 제거될 수도 있는 Minify를 사용하는 경우 ‘클래스 누락’ 오류가 발생할 수 있습니다.

Minify가 필요하지 않으면 이 기능을 꺼서 해당 문제를 해결합니다.

Minify를 계속 이용하려면 Custom Proguard File에서 Push Notifications 클래스를 추가하여 최소화 프로세스가 진행되는 동안 Push Notifications SDK 기능이 제외되지 않도록 해야 합니다.

Player Settings > Publishing > Build > Custom Proguard File에서 Custom Proguard File을 활성화합니다.

img.png

지정된 경로에 생성된 파일을 열고 다음 줄을 추가합니다.

-keep class com.unity.services.pushnotifications** { *;}

이렇게 하면 문제를 해결할 수 있습니다.

4. (iOS) XCODE에서 원격 알림 활성화

iOS 앱에서 Push Notifications를 받으려면 Remote Notifications 기능이 활성화되어야 합니다.

이 작업이 실패하면 앱에 다음 오류가 표시됩니다.

Failed to register for remote notifications: no valid “aps-environment” entitlement string found for application

Signing & Capabilities > Capability > Background Modes > Remote Notifications로 이동하여 Remote Notifications 기능을 이용합니다.

5. Push Notifications settings에서 Unity Dashboard의 API 키 확인

최종 사용자 디바이스로 Push Notifications를 전송하려면 Unity Dashboard의 LiveOps > Push Notifications에서 확인할 수 있는 Settings에서 Google 및 Apple 키를 추가합니다.

Google Key 추가에 관한 가이드는 여기에서, Apple Key 추가에 관한 가이드는 여기에서 확인할 수 있습니다.

iOS의 경우 키가 타겟 빌드 버전과 일치해야 합니다. 디버그 빌드에서는 Sandbox 옵션을 True로 설정하고 프로덕션 빌드의 경우 False로 설정합니다. 키와 빌드 버전이 일치하지 않으면 테스트 디바이스에 알림이 전송되지 않습니다.

생성된 XCODE 프로젝트에서 iOS 앱을 빌드할 때 run 섹션의 모든 타겟(예: Unity-iPhone, notificationservice) 규칙을 debug에서 release로 전환해야 할 수도 있습니다. SandboxFalse로 설정된 경우 SandboxTrue로 설정하면 release에서 debug로 전환할 수 있습니다.

테스트 가이드를 사용하여 키 작동 여부를 점검합니다.