기술 자료

​
​

Development

User Acquisition

Monetization

산업 분야

Build Automation

DevOps

Build Automation REST API

Build Automation Editor Package

Open Unity Dashboard

Build Automation

​
​
Build Automation
  • Overview
  • Get started with Build Automation
  • Build Automation Glossary
  • Build configuration
  • Advanced build configuration
  • Run builds
  • Check build results
  • Optimize build speed
  • Manage consumption costs
  • Sign build artifacts
  • Build Automation integrations
    • Use Build Automation's build manifest during runtime
    • Project integration workflow
  • Build Automation API
  • Build Automation Editor Package
  • Reference
  1. Unity Build Automation
  2. Build Automation integrations

런타임 중에 Build Automation의 빌드 매니페스트 사용

Access build manifest data at runtime for analytics and bug reporting in Unity Build Automation.
읽는 시간 3분
최근 업데이트: 10달 전

게임의 런타임 코드에 빌드 자체에 대한 주요 정보가 포함되어 있는 경우가 많습니다. 빌드의 이름과 번호와 같은 정보는 버그를 보고하거나 분석을 트래킹할 때 매우 유용합니다. Build Automation은 이를 용이하게 하기 위해 빌드 시 게임에 매니페스트를 삽입하여 이 주요 데이터를 런타임 시점에 나중에 액세스할 수 있도록 합니다.
Build Automation은 매니페스트를 JSON으로 포맷이 지정된
TextAsset
으로 제공합니다. Build Automation은 매니페스트를
Resources.Load()
를 통해 액세스할 수 있는 게임 리소스로 저장합니다. 빌드 매니페스트에는 다음의 값이 포함되어 있습니다.

값

프로퍼티

scmCommitId
빌드된 커밋이나 changelist입니다.
scmBranch
빌드된 브랜치의 이름입니다.
buildNumber
이 빌드에 해당하는 Build Automation 빌드 번호입니다.
buildStartTime
빌드 프로세스가 시작된 시점의 UTC 타임스탬프입니다.
projectId
Unity 프로젝트 식별자입니다.
bundleId
Build Automation에서 설정된
bundleIdentifier
입니다(iOS와 Android만 해당).
unityVersion
Build Automation에서 빌드가 생성되는 데 사용한 Unity 버전입니다.
xcodeVersion
프로젝트를 빌드하는 데 사용된 Xcode 버전입니다(iOS만 해당).
cloudBuildTargetName
빌드된 빌드 타겟의 이름입니다.
UnityCloudBuildManifest.json이라는 TextAsset 매니페스트는
Assets/UnityCloud/Resources
폴더에 작성됩니다.

로컬 테스트의 경우

빌드 매니페스트 기능을 로컬에서 테스트하려면
UnityCloudBuildManifest.json.txt
파일의 이름을 지정합니다. 이 파일은 Build Automation 매니페스트 파일에 간섭을 일으킬 수 있으므로 코드 저장소에 있는 프로젝트의 Assets/UnityCloud/Resources 폴더에 커밋하면 안 됩니다.

매니페스트 사용

런타임 시 다음을 통해 매니페스트에 액세스할 수 있습니다.
  • JSON으로 매니페스트
  • ScriptableObject로 매니페스트

JSON으로 매니페스트 빌드

런타임 시 JSON으로 Build Automation 매니페스트에 액세스할 수 있습니다. 이 에셋에는 커스텀 파싱 로직이나 타사 JSON 파서 사용이 필요합니다.
다음 C# 코드 예제는 GitHub Gist에서 MiniJSON 파서로 빌드 매니페스트를 로드하고 파싱하는 방법을 보여 줍니다.
using UnityEngine;using System.Collections.Generic;using MiniJSON;public class MyGameObject: MonoBehaviour{ void Start() { var manifest = (TextAsset) Resources.Load("UnityCloudBuildManifest.json"); if (manifest != null) { var manifestDict = Json.Deserialize(manifest.text) as Dictionary<string,object>; foreach (var kvp in manifestDict) { // Be sure to check for null values! var value = (kvp.Value != null) ? kvp.Value.ToString() : ""; Debug.Log(string.Format("Key: {0}, Value: {1}", kvp.Key, value)); } } }}

ScriptableObject로 매니페스트 빌드

BuildManifestObject
는
ScriptableObject
이며, 수동으로
UnityCloudBuildManifest.json
TextAsset을 로드할 필요 없이 스크립트를 통해 빌드 매니페스트의 값에 액세스하는 데 사용할 수 있습니다.
BuildManifestObject
는 Build Automation에서 호출하는 사전 익스포트의 선택 사항 파라미터입니다(
UnityCloudBuildManifest.json
TextAsset이 작성되지 않은 경우). 자세한 내용은 JSON으로 매니페스트를 참고하십시오.
다음 예제 C# 코드는 매니페스트에 제공된
buildNumber
에 따라
PlayerSettings
의
bundleVersion
을 업데이트하는 사전 익스포트 메서드를 보여 줍니다. 사전 익스포트 메서드에 대한 자세한 내용은 사전 및 포스트 익스포트 메서드를 참고하십시오.
using UnityEngine;using UnityEditor;using System;public class CloudBuildHelper : MonoBehaviour{ #if UNITY_CLOUD_BUILD public static void PreExport(UnityEngine.CloudBuild.BuildManifestObject manifest) { PlayerSettings.bundleVersion = string.Format("1.0.{0}", manifest.GetValue<int>("buildNumber")); } #endif}
다음은
BuildManifestObject
클래스의 퍼블릭 인터페이스입니다.
namespace UnityEngine.CloudBuild{ public class BuildManifestObject : ScriptableObject { // Try to get a manifest value - returns true if key was found and could be cast to type T, otherwise returns false. public bool TryGetValue<T>(string key, out T result); // Retrieve a manifest value or throw an exception if the given key isn't found. public T GetValue<T>(string key); // Set the value for a given key. public void SetValue(string key, object value); // Copy values from a dictionary. ToString() will be called on dictionary values before being stored. public void SetValues(Dictionary<string, object> sourceDict); // Remove all key/value pairs. public void ClearValues(); // Return a dictionary that represents the current BuildManifestObject. public Dictionary<string, object> ToDictionary(); // Return a JSON formatted string that represents the current BuildManifestObject public string ToJson(); // Return an INI formatted string that represents the current BuildManifestObject public override string ToString(); }}

Copyright © 2026 Unity Technologies
법률 정보개인정보 처리방침쿠키Documentation Terms of Use개인 정보 판매 또는 공유 금지개인정보 보호 선택(쿠키 설정)

'Unity', Unity 로고 및 기타 Unity 상표는 미국 및 기타 지역 내 Unity Technologies 또는 그 계열사의 상표 또는 등록상표입니다(자세한 내용은 여기에서 확인하세요). 기타 명칭 또는 브랜드는 해당 소유자의 상표입니다.

일부 페이지는 편의를 위해 기계 번역되었으며 부정확한 내용이 있을 수 있습니다. 정보가 상충되는 경우, 영어 버전을 우선으로 참조하세요.

  • 보고 있는 페이지
    • 로컬 테스트의 경우

    • 매니페스트 사용

      • JSON으로 매니페스트 빌드

      • ScriptableObject로 매니페스트 빌드


이 페이지의 문제 보고