유니티/개념정리

unity Publishing Settings (퍼블리싱 설정) - Build (Gradle(그레이들),Android Manifest(매니페스트 개념))

유니티세상 2025. 1. 14. 14:01

유니티 안드로이드 빌드를 하다보면 만나는 gradle 에러

무엇인지 알아보자

 

 

 

Gradle은 거의 모든 종류의 소프트웨어를 빌드할 수 있는 오픈소스 빌드 자동화툴입니다. 

->  .apk  ( .apk 파일은 실행 파일이 아닌 설치 파일) 

Gradle은 여러 빌드 프로세스를 자동화하고 일반적인 빌드 오류를 방지하는 빌드 시스템입니다.

 

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: 코드 난독화 및 최적화.

 

참고)

https://jinger.tistory.com/entry/%EC%9C%A0%EB%8B%88%ED%8B%B0-%ED%94%8C%EB%9E%AB%ED%8F%BC-%EB%B3%84-%ED%94%8C%EB%A0%88%EC%9D%B4%EC%96%B4-%EC%84%B8%ED%8C%85

 

유니티 플랫폼 별 플레이어 세팅(Player Settings)

서론 유니티의 Player Settings는 특정 플랫폼에서 애플리케이션을 실행하기 위한 설정을 제공한다. 이 설정을 조정하는 이유는 몇 가지가 있다. 첫째, 각 플랫폼의 요구 사항에 맞게 설정하여 크로

jinger.tistory.com

 

https://medium.com/@renovatio0424/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%9D%BC%EB%A9%B4-%EC%95%8C%EC%95%84%EC%95%BC-%ED%95%98%EB%8A%94-gradle-%EC%9B%90%EB%A6%AC-c39a3299ba6d

 

안드로이드 개발자라면 알아야 하는 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