반응형
코드 작성
using UnityEngine;
using UnityEditor;
using UnityEditor.Callbacks;
using System.IO;
using System.Xml;
public class PostProcessBuild : MonoBehaviour
{
[PostProcessBuild]
public static void OnPostprocessBuild(BuildTarget target, string pathToBuiltProject)
{
if (target == BuildTarget.iOS)
{
// Info.plist 파일 경로 설정
string plistPath = Path.Combine(pathToBuiltProject, "Info.plist");
// 파일 내용을 문자열로 읽어오기
var plistContent = File.ReadAllText(plistPath);
// XML 문서로 로드
var xmlDoc = new XmlDocument();
xmlDoc.LoadXml(plistContent);
// 루트 노드 가져오기
var rootNode = xmlDoc.DocumentElement;
// 새로운 키-값 쌍 추가
AddStringElement(rootNode, "NSCameraUsageDescription", "This app requires camera access");
AddStringElement(rootNode, "NSLocationWhenInUseUsageDescription", "This app requires location access");
// 수정된 plist 파일 저장
File.WriteAllText(plistPath, xmlDoc.OuterXml);
Debug.Log("Info.plist 수정 완료.");
}
}
private static void AddStringElement(XmlNode rootNode, string key, string value)
{
// 키 노드 생성
var keyNode = rootNode.OwnerDocument.CreateElement("key");
keyNode.InnerText = key;
// 값 노드 생성
var valueNode = rootNode.OwnerDocument.CreateElement("string");
valueNode.InnerText = value;
// 루트 노드에 키-값 쌍 추가
rootNode.AppendChild(keyNode);
rootNode.AppendChild(valueNode);
}
}
작성 후 Assets / Editor 이름의 폴더를 만든 후 그 안에 넣고 빌드하면 됩니다.
반응형