빌드 설정 누락을 코드로 고정합니다
Google Play Console은 64비트(IL2CPP ARM64) 아키텍처와 최신 Target API(API 34+)를 필수로 요구합니다. 에디터 설정 창을 열지 않고도 배치 빌드 진입점에서 필수 플래그를 프로그래밍 방식으로 주입하세요.
#if UNITY_EDITOR
using UnityEditor;
using UnityEditor.Build.Reporting;
using UnityEngine;
public static class AndroidReleaseBuilder
{
public static void BuildAAB()
{
EditorUserBuildSettings.buildAppBundle = true;
EditorUserBuildSettings.androidBuildSubtarget = MobileTextureSubtarget.Generic;
PlayerSettings.SetScriptingBackend(BuildTargetGroup.Android, ScriptingImplementation.IL2CPP);
PlayerSettings.Android.targetArchitectures = AndroidArchitecture.ARMv7 | AndroidArchitecture.ARM64;
PlayerSettings.Android.targetSdkVersion = (AndroidSdkVersions)34;
BuildPlayerOptions options = new BuildPlayerOptions
{
scenes = new[] { "Assets/Scenes/SampleScene.unity" },
locationPathName = "Builds/IceBreaker-Release.aab",
target = BuildTarget.Android,
options = BuildOptions.None
};
BuildReport report = BuildPipeline.BuildPlayer(options);
if (report.summary.result != BuildResult.Succeeded)
throw new System.Exception("AAB Build Failed: " + report.summary.totalErrors);
}
}
#endif환경 변수 기반 키스토어 주입
키스토어 비밀번호를 소스 코드에 하드코딩하면 보안 사고가 발생합니다. CI/CD 환경 변수에서 비밀번호를 읽어와 빌드 직전에 PlayerSettings에 주입하고, 완료 후 비우도록 설계하세요.
#if UNITY_EDITOR
using UnityEditor;
using System;
public static class KeystoreConfigurator
{
public static void ApplyFromEnv()
{
string pass = Environment.GetEnvironmentVariable("UNITY_KEYSTORE_PASS");
if (string.IsNullOrEmpty(pass))
throw new Exception("UNITY_KEYSTORE_PASS is not set.");
PlayerSettings.Android.useCustomKeystore = true;
PlayerSettings.Android.keystoreName = "keys/user.keystore";
PlayerSettings.Android.keystorePass = pass;
PlayerSettings.Android.keyaliasName = "icebreaker_release";
PlayerSettings.Android.keyaliasPass = pass;
}
}
#endif번들 검증 단계
생성된 .aab 파일은 배포 전 Google bundletool로 실제 기기별 APK 분할이 정상적으로 일어나는지(Universal APK 추출 테스트) 검증해야 스토어 제출 후 리젝을 막을 수 있습니다.
검증 범위
공식 문서 대조
검증일
Unity 공식 문서와 본문의 코드·절차를 대조해 공개 준비 상태로 전환했습니다. 별도 Unity 프로젝트나 실기기에서 직접 재현한 결과는 아니며, 특정 버전·기기 문의가 들어오면 해당 환경에서 후속 확인합니다.
확인한 공식 문서Unity Android 빌드 매뉴얼 ↗