일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 이스케이퍼스
- C 자료구조
- 홍대 방탈출
- 유니티
- 추천
- 강남 방탈출
- 홍대 방탈출 추천
- Unity
- 방탈출 추천
- 방탈출
- 개발
- 홍대
- 이스케이퍼스 2호점
- 윈도우 프로그래밍
- 공포 방탈출
- 정렬 알고리즘
- 시스템 프로그래밍
- 꽃길
- 2021 방탈출 추천
- C++ 자료구조
- 넥스트에디션
- 넥스트에디션 2호점
- PC VR
- 홍대 덤앤더머
- C#
- Android
- 방탈출 리뷰
- 방탈출 후기
- 필활
- 후기
- Today
- Total
행복한 연어의 이야기
(Unity) 유니티 모바일 빌드 방법 (IL2CPP, MONO) 본문
유니티에서 모바일로 빌드 하는 방법은 크게 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
NDK 설치
-
13 버전입니다. 최신 버전인 16 은 제 테스트 버전에서 호환 X
MONO 방법 빌드
SDK , JDK 필요
보통 많이 쓰는 방법
빌드 속도가 빠르다.
빌드 방법
- 유니티 File -> Build Settings -> Scenes 추가(첫씬은 맨위에) -> Android 클릭 후 Switch Platform
(5.1.5 버전은 바로 가능했지만 최신 버전유니티에서는 Android Modul 다운로드 후 유니티 재실행 필요) - 유니티 Edit -> Preferences -> External Tools 메뉴에 들어가서 SDK ,JDK 경로지정
- SDK 경로 - C:/Users/[사용자 이름]/AppData/Local/Android/Sdk
- JDK 경로 - C:/Program Files/Java/jdk1.8.0_191
- 유니티 File -> Build Settings -> Player Setting 클릭
- 오른쪽 Insfector 창에 회사이름 어플이름 작성, 아이콘 배정(배정 안하면 기본 Unity 아이콘 이미지)
- 하단에 Other Setting 클릭 Identification 안에 Bundle Identifier(or PackageName) 수정,
MiniMum APILevel 수정- Bundle Identifier(or PackageName) - com.회사이름.어플이름
- MiniMum API Level - SDK에 설치한 안드로이드 최소 버전 (5.0)
- Configuration 안에 Scripting Backend 가 MONO 인지 확인
- 다시 왼쪽 Build Settings 돌아와서 Build 클릭
IL2CPP 방법 빌드
SDK , NDK 필요
IOS 64bit 버전을 빌드 할때 사용
보안성을 높이기 위해 사용한다.
빌드 방법
- 유니티 File -> Build Settings -> Scenes 추가(첫씬은 맨위에) -> Android 클릭 후 Switch Platform
(5.1.5 버전은 바로 가능했지만 최신 버전유니티에서는 Android Modul 다운로드 후 유니티 재실행 필요) - 유니티 Edit -> Preferences -> External Tools 메뉴에 들어가서 SDK ,NDK 경로지정
- SDK 경로 - C:/Users/[사용자 이름]/AppData/Local/Android/Sdk
- NDK 경로 - 압축 파일을 푼 경로
- 유니티 File -> Build Settings -> Player Setting 클릭
- 오른쪽 Insfector 창에 회사이름 어플이름 작성, 아이콘 배정(배정 안하면 기본 Unity 아이콘 이미지)
- 하단에 Other Setting 클릭 Identification 안에 Bundle Identifier(or PackageName) 수정,
MiniMum APILevel 수정- Bundle Identifier(or PackageName) - com.회사이름.어플이름
- MiniMum API Level - SDK에 설치한 안드로이드 최소 버전 (5.0)
- Configuration 안에 Scripting Backend 가 IL2CPP 인지 확인
- 다시 왼쪽 Build Settings 돌아와서 Build 클릭
tip) 용어 정리
SDK
소프트 웨어 프로그래밍 개발 킷
JDK
android 어플을 개발시 JAVA 코드로 개발할 수 있게 도와주는 킷
NDK
android 어플을 개발시 C 코드로 개발할 수 있게 도와주는 킷
참고한 사이트 링크
- https://webnautes.tistory.com/1006
- https://m.blog.naver.com/PostView.nhn?blogId=qmfforvltm1&logNo=220920750029&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F
- http://spiritlink.tistory.com/16
기본적으로 제가 이해하고 조사한 내용을 적었습니다.
혹시라도 잘못되어 있으면 댓글로 알려주시면 감사하겠습니다!
'IT > Unity' 카테고리의 다른 글
(Unity) 안드로이드 프로파일러 (2) | 2020.01.24 |
---|---|
(Unity) 카드보드 & 데이드림 개발 환경 구축 (1) | 2020.01.23 |
(Unity) 유니티 기어 VR 개발 환경 구축 (2) | 2020.01.16 |
(Unity) 코루틴(Coroutine) (0) | 2020.01.14 |
(Unity) 유니티 이벤트 함수 실행순서 (0) | 2020.01.13 |