행복한 연어의 이야기

(Unity) 유니티 모바일 빌드 방법 (IL2CPP, MONO) 본문

IT/Unity

(Unity) 유니티 모바일 빌드 방법 (IL2CPP, MONO)

해피살몬 2020. 1. 15. 20:38

유니티에서 모바일로 빌드 하는 방법은 크게 2가지가 있는데요.

IL2CPP, MONO 이렇게 2가지 방식입니다.

오늘은 그 두가지 방법에 대해 소개 해볼까 합니다.

IL2CPP란?

어셈블리 언어 인 IL(Intermediate Language - 스택 기반 어셈블리 언어 )를 C++ 소스 코드로 변환
C#이나 Unity 컴파일러가 작성한 IL 를 C++코드로 바꿔서 apk 나 exe 파일을 만들기 전에
C++로 어셈블리를 추가 할수 있게 해주는 방법을 말합니다.
(그래서 C코드로 변환할수 있게 도와주는 NDK가 필요합니다.)

IL2CPP 장단점

  • IL2CPP는 아직 개발 중이기에 아래 단점은 현재 기준이고 점차 개선 될 것입니다.

= 장점

  • 코드 크기를 줄일수 있다. (사용하지 않는 유니티 모듈을 제거 할수있다.)
  • IOS 64-bit 빌드를 지원한다. (MONO는 지원 X)

= 단점

  • 버그가 MONO에 비해 많이 생긴다. 주로 리플렉션(구체적인 클래스 타입을 알지 못해도 그 클래스의 메소드, 변수들을 접근 할 수 있게 해주는 자바 API)을 사용하는 JSON 라이브러리에서 많이 생긴다.
  • 빌드시간이 MONO 보다 느리다.
  • 디버깅이 어렵다.

MONO 랑 IL2CPP 차이

원래 제공하던 개발환경은 MONO 였지만 라이센스 계약이 3.5버전부터 끊어졌습니다.
그래서 대체적으로 만든게 IL2CPP 입니다.
아직 버그등 개선해야 할 점은 많지만 유니티는 IL2CPP를 밀어주고 있습니다.
IL2CPP 가 IOS - 64bit 를 법률상 제공하게 되어서 (MONO는 X) IOS - 64bit 를 사용하려면 IL2CPP 를 사용해야만 합니다.

빌드를 하기전에 필요한 것들

  • 유니티 최신 버전에서는 NDK 와 JDK 가 기본적으로 설치 되어있습니다.

SDK 설치

  • SDK 링크
  • 추가설치 : 설치 완료 후 Android Studio 실행 -> 오른쪽 아래 Configure 클릭
    SDK manager 에 들어가 적용될 안드로이드 버전 체크 후 적용 (보통 5.0 이상 버전만 체크)

JDK 설치

  • 8버전 입니다. 최신 버전인 11 은 제 테스트 버전에서 호환 X

  • JDK 링크

NDK 설치

  • 13 버전입니다. 최신 버전인 16 은 제 테스트 버전에서 호환 X

  • NDK 링크

MONO 방법 빌드

SDK , JDK 필요
보통 많이 쓰는 방법
빌드 속도가 빠르다.

빌드 방법

  1. 유니티 File -> Build Settings -> Scenes 추가(첫씬은 맨위에) -> Android 클릭 후 Switch Platform
    (5.1.5 버전은 바로 가능했지만 최신 버전유니티에서는 Android Modul 다운로드 후 유니티 재실행 필요)
  2. 유니티 Edit -> Preferences -> External Tools 메뉴에 들어가서 SDK ,JDK 경로지정
    • SDK 경로 - C:/Users/[사용자 이름]/AppData/Local/Android/Sdk
    • JDK 경로 - C:/Program Files/Java/jdk1.8.0_191
  3. 유니티 File -> Build Settings -> Player Setting 클릭
  4. 오른쪽 Insfector 창에 회사이름 어플이름 작성, 아이콘 배정(배정 안하면 기본 Unity 아이콘 이미지)
  5. 하단에 Other Setting 클릭 Identification 안에 Bundle Identifier(or PackageName) 수정,
    MiniMum APILevel 수정
    • Bundle Identifier(or PackageName) - com.회사이름.어플이름
    • MiniMum API Level - SDK에 설치한 안드로이드 최소 버전 (5.0)
  6. Configuration 안에 Scripting Backend 가 MONO 인지 확인
  7. 다시 왼쪽 Build Settings 돌아와서 Build 클릭

IL2CPP 방법 빌드

SDK , NDK 필요
IOS 64bit 버전을 빌드 할때 사용
보안성을 높이기 위해 사용한다.

빌드 방법

  1. 유니티 File -> Build Settings -> Scenes 추가(첫씬은 맨위에) -> Android 클릭 후 Switch Platform
    (5.1.5 버전은 바로 가능했지만 최신 버전유니티에서는 Android Modul 다운로드 후 유니티 재실행 필요)
  2. 유니티 Edit -> Preferences -> External Tools 메뉴에 들어가서 SDK ,NDK 경로지정
    • SDK 경로 - C:/Users/[사용자 이름]/AppData/Local/Android/Sdk
    • NDK 경로 - 압축 파일을 푼 경로
  3. 유니티 File -> Build Settings -> Player Setting 클릭
  4. 오른쪽 Insfector 창에 회사이름 어플이름 작성, 아이콘 배정(배정 안하면 기본 Unity 아이콘 이미지)
  5. 하단에 Other Setting 클릭 Identification 안에 Bundle Identifier(or PackageName) 수정,
    MiniMum APILevel 수정
    • Bundle Identifier(or PackageName) - com.회사이름.어플이름
    • MiniMum API Level - SDK에 설치한 안드로이드 최소 버전 (5.0)
  6. Configuration 안에 Scripting Backend 가 IL2CPP 인지 확인
  7. 다시 왼쪽 Build Settings 돌아와서 Build 클릭

tip) 용어 정리

SDK
소프트 웨어 프로그래밍 개발 킷
JDK
android 어플을 개발시 JAVA 코드로 개발할 수 있게 도와주는 킷
NDK
android 어플을 개발시 C 코드로 개발할 수 있게 도와주는 킷

참고한 사이트 링크

기본적으로 제가 이해하고 조사한 내용을 적었습니다.

혹시라도 잘못되어 있으면 댓글로 알려주시면 감사하겠습니다!

Comments