티스토리 뷰

금일 모바일 테스트 버전을 배포하면서 발생한 문제.

갤럭시 S24에서는 해당 앱이 다운로드 자체가 되질 않는다...

이외에도 게임 실행이 정상적으로 진행되지 않는다는 제보도 있었다.

그래서 패치했고, 정상 구동되는 것도 확인했다.

 

그런 고로, 이런 경우 호환성을 어떻게 구비할 수 있는지 정리 해 보자.


Scripting Backend

[참고 URL: https://docs.unity3d.com/kr/2021.1/Manual/scripting-backends.html]

'컴파일'을 언제 하는 가에 대한 설정.

정확히는 컴파일러의 종류와 타이밍을 설정하는 항목이다.

Project Setting → Player → OtherSetting → Configuration 항목에서 설정 가능하다.

 

현재로서는 2종류의 항목이 존재한다.

  • Mono: JIT(Just - in - Time)
    • 개발자가 Cross-Platform 어플리케이션을 쉽게 만들 수 있도록 설계된 소프트웨어 플랫폼.
    • C#으로 작성된 코드가 IL(Intermediate Language) 코드로 컴파일 된 이후, Mono 런타임 환경에서 실행된다.
    • JIT(Just-In-Time) 컴파일러를 사용한다.
      • JIT : 프로그램에서 코드가 실제 실행되는 시점에 기계어로 번역하는 컴파일 기법.
      • 동적 번역(Dynamic Translation), 런타임 컴파일(Run-time Compilations)라고도 불린다.
    • AOT 컴파일을 지원하지 않는 플랫폼에 적합하다.
    • 유니티 세팅의 기본 값.
  • IL2CPP(Intermediate Language to C++)
    • MSIL(MicroSoft Intermediate Language)를 C++ 코드로 전환한 뒤, 타켓 플렛폼에서 직접 실행 가능한 적합한 네이티브 바이너리 파일로 컴파일하는 방식.
    • AOT(Ahead-Of-Time) 컴파일러를 사용한다.
      • AoT : 빌드 타임에 컴파일 해 두고 런타임 시에는 실행 만 하는 컴파일 기법.
    • Mono나 JIT 컴파일을 지원하지 않는 플랫폼에 적합하다.
    • 타겟 플랫폼에 최적화된 C++ 코드를 생성하기 때문에, IL을 그대로 사용하는 Mono 보다 성능이 조금 더 높다.
    • 대신, 빌드 타임에 컴파일을 모두 끝내두기 때문에 빌드 시간은 이쪽이 더 길다.

자, 이제 설정 방법을 알아보자.


설정 방법

 

설정 장에서 IL2CPP를 선택하면 볼 수 있는 화면이다.

[Mono를 선택하면 아래의 Target Architectures의 일부 항목이 비 활성화된다.]

 

여기서 ARM64를 체크하면 끝이다.

이러면 64비트 체계도 호환하게 되면서 S24에서도 정상적으로 설치가 가능하게 되며, 최신 안드로이드 버전에서도 별 다른 문제 없이 다운로드 가능하게 된다.


호환성 문제라고 지레 겁먹고 있었는데, 알고 보니 참 간단한 방법이었다.

오히려 이 게시글을 작성하려고 자료를 찾아보는 게 더 오래 걸렸을 정도...;;

그래도 이래저래 유용한 정보였다고 생각한다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함