블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2797)
Unity3D (853)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (61)
3DS Max (3)
Game (12)
Utility (68)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday

Unity 2021.3.34f1

----

 

Unity 2021.3.34f1에서 Android 빌드 테스트를 하다보니 아래와 같이 2가지 이슈가 있었다.

 

1) Android Target API Level 31 이후가 뜨지 않음.

2) Android 빌드 시, 빌드는 잘되지만 켜자마자 Runtime Crash가 발생함.

----

 

[1) 이슈]

1)의 경우는 Unity 설치 Path에 빈 칸( )이 있어서 발생하는 문제라고 한다.

 

[결론]

Unity Hub의 설치 폴더를 빈 칸( )이 없는 Path로 변경하고(Unity Hub 완전 종료 후 재실행 필요) 유니티를 다시 설치하자.

 

 

[2) 이슈]

유니티 업데이트 하고 1)의 이슈 해결하고 Android 빌드했더니, 아래와 같은 Crash 로그가 뜬다.

(iOS는 정상적으로 빌드 됨)

 

[Crash Log] signal 6 (SIGABRT), code -1 (SI_QUEUE)

 

검색해보니 아래 [참조]와 같은 내용과 해결책이 적혀 있는데,

따라해봐도 계속 Crash가 나는걸 봐선 이번 이슈와는 관련이 없는 것 같다.

(결국 Crash Log로 검색해서는 현재 상황에 맞는 답을 찾지 못했다)

 

[참조] https://stackoverflow.com/questions/76222872/unity-android-receiving-signal-crashes

 

Unity Android receiving signal crashes

Backstory I built my unity app to android x64 using IL2CPP which has worked fine in the past but after a lot of changes I'm now getting crashes somewhat spontaneously. Signals received: signal 6 (

stackoverflow.com

 

그래서 좀 더 고민하다보니 현재 프로젝트 2개를 관리중인데 Unity 2021.3.34f1에서 하나는 Runtime Crash가 나고, 하나는 Crash가 나지 않아서 비교해 보다보니 다른점이 있었다.

Crash가 나는 쪽은 대용량(150MB 이상) aab 파일 생성을 위해 Play Asset Delivery 1.7.0이 들어있었고,

Crash 가 나지 않는 쪽은 없었다.

 

혹시나하고 Play Asset Delivery를 지우고 빌드해보니 정상적으로 빌드되고 잘 실행된다.

그래서 다시 한 번 Play Asset Delivery를 현재 기준 최신 버전인 1.8.2(2024-02-16 현재 기준 최신)를 넣고 빌드해보니 역시나 잘 실행된다.

Unity 2021.3.34f1부터 Google 라이브러리 중 뭔가 바꼈다고 하는 것 같은데,

정황상 바뀐 Google 관련 라이브러리가 Play Asset Delivery 1.7.0 버전과 호환이 안되는 것 같다.

 

이전에는 Unity 2021의 gradle 버전이 기본 4.0.1이어서 Play Asset Delivery 1.7.0을 써야 됐는데,

GoogleMobileAds(Admob) 8.6.0 버전부터 gradle 4.2.0을 강제해서 올리다보니

Play Asset Delivery 1.8.x 버전대를 쓸 수 있는 상황이 왔다.

 

[결론]

Unity 2021.3.34f1 이상에서 제목과 같은 Runtime Crash가 나는데 Play Asset Delivery 1.7.0을 사용하고 있다면,

gradle 4.2.0으로 올리고, Play Asset Delivery 1.8.2(2024-02-16 현재 기준 최신)로 교체한 후 빌드해 보자.

 

[정리]

Unity 2021.3.33f1 이하 : Play Asset Delivery 1.7.0 사용

Unity 2021.3.34f1 이상 : Play Asset Delivery 1.8.2 사용

 

 

[참조] https://developers.google.com/unity/archive?hl=ko#play_asset_delivery

 

Unity용 Google 패키지 다운로드  |  Google for Developers

 

developers.google.com

반응형
Posted by blueasa
, |

Unity 2021.3.41f1

----

 

[추가4] 2024-08-06

Play Asset Delivery v1.9.1이 업데이트 돼있어서 적용함.

 

[추가3] 2024-03-27

Play Asset Delivery v1.9.0(2024-03-27 기준 최신)이 업데이트 됐다.

1.9.0은 최소 Unity 버전이 2017.4로 표기돼있다.(버전별 문제를 해결한건가..?)

 

[추가2]

AssetDelivery 1.7.0으로 iOS 빌드 하면서 ./GooglePlayPlugins/com.google.play.assetdelivery/Samples 폴더 관련 소스에서 에러가 나서 삭제 함.

 

[추가]

aab파일 150mb 초과해서 구글스토어 올리려고 알아보고

아래 [링크]의 내용대로 진행해서  Play Asset Delivery v1.8.2(2023-04-25 기준 최신)를 설치해서 빌드해보니,

빌드는 잘 되지만 실행하면 크래시 나면서 앱이 죽는다.

버전 정보를 보면 Play Asset Delivery v1.8.0 이상부터는 Unity 최소 버전이 2023.1.0 (베타)이다.

(1.8.0이상은 2023.1.0 이상이라고 돼있지만 2022.2.18f1에서 정상동작 하는걸 확인했다.)

 

[참조] https://github.com/google/play-unity-plugins/issues/187

 

Crash at Android 12 · Issue #187 · google/play-unity-plugins

Hello I'm now experiencing crash on android devices with Android 12 only. thread.cc:2372] Throwing new exception 'No interface method getPackStates(Ljava/util/List;)Lcom/google/android/play/core/ta...

github.com

 

크래시 내용을 찾아보니 위[참조]와 같은 내용이 있다.

Firebase와 PAD(Play Asset Delevery)와 호환성 문제가 있는 것 같다.

 

참조 링크의 내용대로면 현재 Play Asset Delivery v1.8.x 버전은 제대로 안되고, Play Asset Delivery v1.7.0을 사용해서 성공했다고 한다.

 

[Github:Play Unity Plugins v1.7.0] https://github.com/google/play-unity-plugins/releases/tag/v1.7.0

 

Release v1.7.0 · google/play-unity-plugins

com.google.play.integrity (v1.0.0) New Features Initial release Unchanged Packages com.google.android.appbundle (v1.7.0) com.google.play.appupdate (v1.7.0) com.google.play.assetdelivery (v1.7.0)...

github.com

[Google Play:Play Asset Delivery] https://developers.google.com/unity/archive?hl=ko#play_asset_delivery

 

Unity용 Google 패키지 다운로드  |  Google Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English Unity용 Google 패키지 다운로드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 보관 파

developers.google.com

 

위 Play Asset Delivery 링크에서 1.7.0버전 UnityPackage를 다운로드해서 Import하고,

정상 빌드 되는 것을 확인했다.

 

[결론]

Unity 2021 이하 Play Asset Delivery 1.7.0을 사용하고,

Unity 2022 이상은 Play Asset Delivery 1.8.2(2023-05-12 기준 최신)을 사용하자.

(Unity 2021에서도 gradle 4.2.0을 적용하면 Play Asset Delivery 1.8.2 이상을 사용할 수 있다.

  2024-03-27 기준 1.9.0이 나와있으니 1.9.0을 사용하자.)

 

 

--------------------------------------------------------------------------------------------------------------------------------------------

 

[링크] https://devgod.tistory.com/49

 

[Unity] Unity Play Asset Delivery 앱 빌드, Unity 대용량 앱 빌드

2021년 8월부터 Google Play Store에선 obb를 이용한 대용량 앱 업로드가 사라지고, 무조건 Play Asset Delivery(PAD)를 통해 앱을 업로드 해야합니다. 제발 정책좀 그만 변경했으면 좋겠습니다. 먼저 제가 궁

devgod.tistory.com

반응형
Posted by blueasa
, |