구글플레이스토어에 유니티 프로젝트앱 프로덕션 출시할 시 현출되는 4가지의 경고문중 2번째 경고문입니다.
오류내용
- 이 App Bundle 유형과 연결된 가독화 파일이 없습니다. 난독화된 코드(R8/proguard)를 사용하는 경우 가독화 파일을 업로드하면 비정상 종료 및 ANR을 더 쉽게 분석하고 디버그할 수 있습니다. R8/proguard를 사용하면 앱 크기를 줄이는 데 도움이 됩니다.
해결법
- 불필요한 코드를 최적화하고 외부에서 쉽게 접근하지 못하게하는 것을 난독화 즉 Proguard라고 합니다.
- 유니티에디터상에서 기본 설정을 바꾸어주면 됩니다.
- 아래 경로에서 Use R8, Release 란의 비어있는 체크박스를 체크해주면 됩니다.
- File ▶ Build Settings ▶ Player Settings ▶ Player ▶Publishing Settings ▶Minify
▶ Use R8 Check ▶ Release Check
-참고블로그-
[Unity] 구글 플레이 경고 제거 "이 App Bundle 유형과 연결된 가독화 파일이 없습니다."
다음의 경고를 제거해보자. (유니티 버전 2021.3.11) ProGuard 1. 불필요한 코드를 최적화하고 코드를 난독화 https://www.guardsquare.com/blog/proguard-and-r8 R8 1. 난독화,최적화 덱싱을 모두 통합하고 빌드 성능
totjang.tistory.com
-새로운 문제 발생
- 위 난독화 설정으로 인하여 기존에 프로젝트에 등록했던 googleAdmob이 유니티에디터상에서는 잘 동작하였으나
휴대폰으로 빌드한 이 후에는 광고가 송출되지 않는 문제가 발생하였습니다.
-해결법
- 원인은 Proguard가 abb또는 apk 파일 빌드시에 구글 애드몹관련 코드까지 난독화 해버려서 휴대폰에서는 광고송출이 되지 않는 것으로 파악됩니다.
- 아래는 구글링으로 얻은 키포인트 정보입니다.
- I had the similar issue because I was using proguard.
If you are using proguard then don't forget to add this in proguard.txt. (location: Assets/Plugin/Android/proguard.txt)
- 즉 Proguard가 원인인 것으로 보이며 유니티에디터상 Assets/Plugin/Android 폴더에 proguard.txt 파일을 생성합니다.
- 이후 proguard.txt파일 을 열고 난독화에서 제외할 목록(google.ads등)을 알려주는 아래 코드를 붙여넣습니다.
-keep class com.google.unity.** {
*;
}
-keep public class com.google.android.gms.ads.**{
public *;
}
-keep public class com.google.ads.**{
public *;
}
-keepattributes *Annotation*
-dontobfuscate
- 이제 빌드를 하면 휴대폰에서도 정상적으로 광고가 송출됩니다.
-참고 블로그-
[Unity3D] Admob Proguard Issue
Unity 2018.4.6f1 버전에서 Admob 라이브러리 추가시 발생한 이슈와 해결 방법을 기록합니다. 이슈가 발생한 상황은 다음과 같습니다. 1. Admob 라이브러리를 추가하고 Debug 빌드에서 정상 구동을 확인했
ukprog.tistory.com
https://gist.github.com/radi-cho/21f2b10372dfed98180925fcf08dfc22
Proguard config for solving the common Admob Unity error ClassNotFoundException ads.UnityAdListener
Proguard config for solving the common Admob Unity error ClassNotFoundException ads.UnityAdListener - proguard-user.txt
gist.github.com
https://forum.unity.com/threads/play-games-doesnt-work-with-admob.899090/
Play Games doesn't work with Admob
So I try to add Play games plugin to my project but when I try to sign in the user with; Social.localUser.Authenticate(success => { }); This error...
forum.unity.com