유니티(Unity)에서 앱 런처(launcher) 아이콘 설정하기1)앱 런처 아이콘은 장치의 홈 스크린(home screen)과 런처 윈도우(launcher window)에 표시되는 아이콘입니다. 2)프로젝트 설정(project settings)의 player에서 icon으로 이동합니다. 3)API 수준에 따라서 지원하는 몇가지 아이콘 타입을 확인할수있습니다. 4)Adaptive icons(안드로이드 API 26 이상)를 선택하고 해상도에 대한 배경이미지(background)와 전경이미지(foreground)를 설정합니다(432x432, 324x324, 216x216, 162x162, 108x108, 81x81)안드로이드 적응형 아이콘(Adaptive icons)https://developer.andr..
유니티 안드로이드 구글 플레이 콘솔 업로드 오류(광고 ID 권한 설정 문제)구글 플레이 콘솔에 업로드한 앱 번들에 대해 아래 오류 메시지를 표시합니다.활성 아티팩트 중 하나의 메니페스트 파일에 com.google.android.gms.permission.AD_ID 권한이 포함되어 있지 않습니다. 1)프로젝트 플러그인의 안드로이드 폴더에서 GoogleMobileAdsPlugin을 확인합니다. 2)파일 탐색기에서 GoogleMobileAdsPlugin.androidlib 폴더로 이동합니다. 3)안드로이드 메니페스트파일을 텍스트 편집기에서 열기합니다. 4)아래 위치에 다음을 추가하고 저장합니다. 프로젝트를 빌드하고 구글플레이 콘솔에 앱 번들을 업로드합니다.
안드로이드 메니페스트 파일(AndroidManifest.xml)의 android:exported 속성안드로이드 메니페스트의 android:exported 속성은 앱의 구성 요소(액티비티, 서비스, 브로드캐스트 리시버, 콘텐츠 프로바이더)가 외부 앱에서 접근할 수 있는지를 정의합니다. android:exported="true" 이 구성 요소는 다른 앱에서 접근할 수 있습니다. 외부 앱이 인텐트를 통해 이 구성 요소를 실행하거나 상호작용할 수 있습니다. 아래 예에서 MyExportedActivity는 외부 앱에서 android.intent.action.VIEW 인텐트를 통해 실행될 수 있습니다. android:exported="false" 이 구성 요소는 다른 앱에서 접근할수 없습니다. 외부 앱이 인텐트를 ..
유니티(Unity) 안드로이드 빌드에 android:exported 속성 설정하기구글 플레이 콘솔에서 안드로이드 앱 번들을 업로드하면 아래 오류 문구를 표시합니다.Unity 인텐트 필터를 포함하되 'android:exported' 속성을 설정하지 않고 활동, 활동 별칭, 서비스 또는 broadcast receiver가 있는 apk 또는 android app bundle을 업로드했습니다.이 경우 해당 안드로이드 버전의 앱에서 android:exported 속성을 명시적으로 정의해야합니다.1)프로젝트 설정(project settings)의 player로 이동합니다. publish settings의 build에서 custom main manifest에 체크합니다. 2)프로젝트 플러그인의 안드로이드 폴더에 커스..
유니티(Unity) 프로젝트의 Temp 폴더 확인하기유니티 프로젝트의 Temp 폴더는 에디터에서 빌드를 진행하면 임시적으로 생성되는 폴더입니다. 빌드를 완료하고 에디터가 종료되기전까지 존재하며 에디터를 종료하면 사라집니다.
유니티(Unity) 안드로이드 메니페스트 파일(AndroidManifest.xml)안드로이드 메니페스트안드로이드 메니페스트는 Android 애플리케이션의 필수 구성 파일입니다. 이 파일은 애플리케이션의 필수 정보, 구성 요소, 권한, 그리고 다른 중요한 설정을 Android 운영 체제에 제공하는 역할을 합니다. 애플리케이션의 작동에 필수적이며 제대로 구성하지 않으면 애플리케이션이 정상적으로 동작하지 않을 수 있습니다. https://developer.android.com/guide/topics/manifest/manifest-intro?hl=ko주요 요소와 기능 구성 요소 선언 - activity, service, receiver, provider와 같은 구성 요소를 정의하고 특성을 지정 권한 요청 -..
유니티(Unity) 안드로이드 SDK 수동 설치하기(Android API level 업데이트)1)프로젝트 설정의 Player에서 안드로이드 API를 확인합니다. 에디터에 설치되지않은 SDK를 선택하면 일반적으로 SDK 업데이트 대화상자를 표시합니다. 대화상자를 표시하지않는경우 SDK를 수동 설치할수있습니다. 유니티 에디터에 설치된 SDK 확인2)유니티에 설치된 안드로이드 SDK 폴더 경로를 확인하고 복사합니다. 3)해당 경로로 이동하고 platforms 폴더에서 유니티에 설치되어있는 안드로이드 SDK를 확인합니다. 현재 유니티에 설치된 안드로이드 SDK는 최대 33인것을 확인할수있습니다. 환경 변수 편집4)유니티에 설치된 JDK 폴더 경로를 확인하고 복사합니다. 5)시스템 환경 변수 편집으로 이동합니..
유니티 게임 안드로이드 빌드에서 gradle 파일의 코드 난독화 활성화 부분(minifyEnabled)안드로이드 스튜디오에서 gradle 파일을 수정하여 코드난독화 활성화 하는 부분(minifyEnabled True)1)프로젝트의 아래 경로로 이동합니다.드라이드명:\프로젝트경로\Library\Bee\Android\Prj\IL2CPP\Gradle 2)해당 폴더에 존재하는 다수의 gradle 파일을 확인할수있습니다(.gradle) 3)안드로이드 스튜디오에서 gradle 파일을 확인합니다.일반적으로 프로젝트에는 두가지 종류의 build.gradle이 존재합니다. 예에서 프로젝트 수준의 build.gradle(Project:Gradle)와 모듈 수준의 build.gradle(Module:Launcher)를 ..
구글 플레이 콘솔(google play console)에서 안드로이드 앱 업로드 오류(디버그 모드로 서명한 앱)1)유니티에서 빌드한 안드로이드 앱을 구글 플레이 콘솔에서 업로드할때 아래 오류를 표시합니다.디버그 모드로 서명한 apk 또는 android app bundle을 업로드했습니다. 출시 모드로 apk 또는 android app bundle에 서명해야합니다. 2)유니티 빌드 설정에서 build app bundle(google play)에 체크되어있는지 확인합니다. 3)프로젝트 설정(project settings)의 플레이어 메뉴에서 publishing settings로 이동합니다.프로젝트 키스토어(project keystore)가 활성화되어있는지 확인합니다. 키스토어를 설정 및 활성화하고 새로운 앱..
유니티 안드로이드 게임 개발에서 ProGuard/R8(코드 난독화 도구)코드 난독화 (Obfuscation)의 목적은 앱의 소스 코드를 보호하는것입니다. 소스 코드의 가독성을 떨어뜨려 악의적인 사용자가 코드를 분석하거나 역공학하는 것을 방지합니다. 결과적으로 프로그램의 취약점을 찾기 어렵게 만들고 알고리즘과 로직을 보호하여 복제 또는 도용을 방지합니다(보안강화, 지적 재산 보호, 역공학 방지) 코드 난독화는 이름 변경(클래스, 메소드, 변수의 이름을 이해하기 어려운 형태로 변경), 제어 흐름 변환(제어흐름 예를들어 조건문, 반복문 등을 이해하기 어렵게 변형), 코드 인라인화, 데이터 변환, 잘못된 코드 삽입(실행되지않는 코드를 삽입하여 분석 방해)등의 기법을 사용합니다. ProGuard/R8, DexG..
유니티(Unity) 프로젝트 빌드에서 스크립팅 백엔드 IL2CPP IL2CPP (Intermediate Language To C++)는 유니티에서 제공하는 스크립팅 백엔드(scripting backend)입니다. 프로젝트를 빌드할때 선택할수있는 옵션중(mono, IL2CPP) 하나로 앱의 성능, 보안, 플래폼호환성을 개선하기위해 사용할수있습니다. IL2CPP를 사용하면 C# 코드의 MS 중간 언어(MSIL)에서 C++코드로 변환한 후 플래폼의 네이티브 코드로 컴파일하여 최종적으로 바이너리 파일을 생성합니다(exe, apk, xap) 대상 플래폼에 최적화된 네이티브 코드를 생성하여 다양한 플래폼에서 높은 성능을 보장할수있고(성능, 플래폼호환성) C# 코드가 C++로 변환된 후 네이티브 코드로 컴파일되기 때..
유니티 에디터 버전에 따라서 요구하는 SDK, JDK, NDK의 버전 1)아래 유니티 공식 기술문서에서 에디터의 버전에 따라서 요구하는 sdk, ndk, jdk버전을 확인할수있다. https://docs.unity3d.com/2020.3/Documentation/Manual/system-requirements.html 2)좌측 상단의 version에서 에디터 버전을 선택한다. 3)Unity Player system requirements의 mobile 섹션에서 유니티를 빌드하고 실행하기 위한 최소 요구 사항을 확인할수있다.