문제 해결 팁
다음은 문제가 생기거나 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이 필요하지 않으면 삭제하는 것이 좋습니다.
삭제하지 않으려면 다음 단계를 따릅니다.
- 종속성 파일
PushSDKDependencies.xml
이 생성되었는지 확인합니다. 이 파일을 자동 생성된Assets/Push Notifications/Editor/Android
디렉토리에 넣습니다.- 파일이 보이지 않으면 Unity 프로젝트를 다시 엽니다. 해당 파일은 이 프로세스에서 생성되어야 하는 파일입니다.
- Assets > External Dependency Manager > Android Manager에서 확인할 수 있는
Resolve
또는Force Resolve
옵션을 사용합니다. - 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
을 활성화합니다.
지정된 경로에 생성된 파일을 열고 다음 줄을 추가합니다.
-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
로 전환해야 할 수도 있습니다. Sandbox
가 False
로 설정된 경우 Sandbox
를 True
로 설정하면 release
에서 debug
로 전환할 수 있습니다.
테스트 가이드를 사용하여 키 작동 여부를 점검합니다.