unity Publishing Settings (퍼블리싱 설정) - Build (Gradle(그레이들),Android Manifest(매니페스트 개념))
유니티 안드로이드 빌드를 하다보면 만나는 gradle 에러
무엇인지 알아보자
Gradle은 거의 모든 종류의 소프트웨어를 빌드할 수 있는 오픈소스 빌드 자동화툴입니다.
-> .apk ( .apk 파일은 실행 파일이 아닌 설치 파일)
manifest : 명백한
unity Gradle 프로젝트 파일
Main Manifest
Unity Launcher Manifest
Main Gradle
Launcher Gradle
Base Gradle
Gradle Properties
Gradle Settings
Proguard
1. Main Manifest (AndroidManifest.xml)
역할:
- 앱의 기본 정보를 정의하며, 앱이 Android에서 어떻게 동작할지 설정합니다.
- Unity가 생성하는 기본 AndroidManifest 파일로, 게임의 주요 권한, 구성, 액티비티 등을 정의합니다.
주요 내용:
- 앱 정보: package 이름, 앱 아이콘, 앱 이름 등.
- 권한: 카메라, 인터넷, 파일 쓰기 등 앱에서 필요한 권한.
- 구성 요소: Activity, Service, BroadcastReceiver 등.
예시:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myapp">
<uses-permission android:name="android.permission.INTERNET"/>
<application>
<activity android:name="com.unity3d.player.UnityPlayerActivity"/>
</application>
</manifest>
2. Unity Launcher Manifest
역할:
- Unity 앱이 Android의 런처(앱 목록 화면)에서 어떻게 표시될지 정의.
- 런처 아이콘, 시작 액티비티 등을 설정.
주요 내용:
- MAIN 액티비티: 앱을 실행했을 때 처음 호출되는 액티비티 정의.
- Unity는 런처에서 시작될 앱을 명시적으로 선언합니다.
예시:
<activity android:name="com.unity3d.player.UnityPlayerActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
3. Main Gradle (build.gradle for app module)
역할:
- Unity에서 내보낸 앱 모듈의 빌드 설정을 정의.
- 앱의 applicationId, 빌드 대상(Android 버전), 의존성 등이 포함.
주요 내용:
- applicationId: 앱의 고유 ID.
- 의존성 관리: 필요한 라이브러리를 추가.
- 릴리스 및 디버그 설정: APK를 빌드하는 방식 제어.
예시:
android {
defaultConfig {
applicationId "com.example.myapp"
minSdkVersion 21
targetSdkVersion 33
}
buildTypes {
release {
minifyEnabled false
}
}
}
dependencies {
implementation 'com.google.android.gms:play-services-ads:20.6.0'
}
4. Launcher Gradle (build.gradle for launcher module)
역할:
- Unity의 런처 관련 빌드 설정.
- 앱의 기본적인 실행 및 초기화 설정을 포함.
주요 내용:
- 런처 모듈의 빌드와 관련된 설정.
예시:
android {
defaultConfig {
applicationId "com.example.myapp.launcher"
}
}
5. Base Gradle
역할:
- 공통적으로 사용되는 빌드 설정을 정의.
- Unity 프로젝트가 빌드 시 사용하는 공통 요소를 포함.
6. Gradle Properties (gradle.properties)
역할:
- 프로젝트의 전역 속성을 설정하는 파일.
- 빌드 성능, 메모리 최적화 등을 제어.
주요 내용:
- 빌드 속도 최적화: org.gradle.daemon=true 등 설정.
- 메모리 제한: Gradle의 메모리 사용량을 설정.
예시:
org.gradle.jvmargs=-Xmx2048m
android.useAndroidX=true
7. Gradle Settings (settings.gradle)
역할:
- 프로젝트에 포함된 모듈 정의.
- Unity는 app 모듈을 기본적으로 포함합니다.
예시:
include ':app', ':launcher'
8. Proguard (proguard-rules.pro)
역할:
- 코드 난독화와 최적화 설정.
- 앱의 소스코드를 난독화하여 해킹을 방지하거나, 불필요한 코드를 제거해 APK 크기를 줄입니다.
주요 내용:
- 기본적으로 중요한 코드(예: UnityPlayerActivity)는 제외.
- 외부 라이브러리 보호 및 불필요한 코드 제거.
예시:
-keep class com.unity3d.** { *; }
-keep class com.google.** { *; }
쉽게 정리하자면:
- Main Manifest: 앱의 전체 설정과 권한.
- Launcher Manifest: 앱 런처 관련 설정.
- Main Gradle: 앱 빌드의 핵심 설정.
- Launcher Gradle: 런처 관련 빌드 설정.
- Base Gradle: 공통 빌드 설정.
- Gradle Properties: 빌드 성능과 메모리 설정.
- Gradle Settings: 프로젝트의 모듈 포함 관계.
- Proguard: 코드 난독화 및 최적화.
참고)
유니티 플랫폼 별 플레이어 세팅(Player Settings)
서론 유니티의 Player Settings는 특정 플랫폼에서 애플리케이션을 실행하기 위한 설정을 제공한다. 이 설정을 조정하는 이유는 몇 가지가 있다. 첫째, 각 플랫폼의 요구 사항에 맞게 설정하여 크로
jinger.tistory.com
안드로이드 개발자라면 알아야 하는 Gradle 원리
안드로이드 개발을 하면 한번쯤은 Gradle 문제로 삽질을 하는 경우가 다들 있으실 겁니다. 하지만 항상 Clean Project, Rebuild Project, Invalidate Cache & Restart 를 하며 넘어가죠. 오늘은 왜 우리가…
medium.com
https://docs.unity3d.com/kr/2022.3/Manual/android-gradle-overview.html
Android용 Gradle - Unity 매뉴얼
Gradle은 여러 빌드 프로세스를 자동화하고 일반적인 빌드 오류를 방지하는 빌드 시스템입니다. Unity는 모든 Android 빌드에 Gradle을 사용합니다. Unity에서 출력 패키지(.apk, .aab)를 빌드하거나, Unity에
docs.unity3d.com
에러 해결
https://o-joyuna.tistory.com/31
[ Unity ] Gradle 오류 확인
2018버전 프로젝트를 2021버전 프로젝트로 변경하면서 경험하게된 Gradle 오류를 해경해봤던 방법에 대해 잊어먹지 않기 위해 기록해두고자 합니다. * 프로젝트 중간중간 Build를 걸면서 오류가 발생
o-joyuna.tistory.com
https://durisit.tistory.com/25
윈도우 대상 폴더에 액세스가 거부됨 해결 방법
윈도우 대상 폴더에 액세스가 거부됨 해결 방법 컴퓨터를 사용하다가 특정 폴더dp 접근하면 액세스가 거부됨 메시지가 뜨거나 폴더 권한이 없어 액세스 할 수 없습니다. 라는 메시지가 뜨면서
durisit.tistory.com
https://learnandcreate.tistory.com/2445
유니티(Unity) 안드로이드 메니페스트 파일(AndroidManifest.xml)
유니티(Unity) 안드로이드 메니페스트 파일(AndroidManifest.xml)안드로이드 메니페스트안드로이드 메니페스트는 Android 애플리케이션의 필수 구성 파일입니다. 이 파일은 애플리케이션의 필수 정보,
learnandcreate.tistory.com