using System.IO;
using UnityEngine;
using UnityEditor;
using UnityEditor.iOS.Xcode;
using UnityEditor.Callbacks;
using System.Collections;
public class XCodeSettingsPostProcesser
{
[PostProcessBuild]
public static void OnPostprocessBuild(BuildTarget buildTarget, string pathToBuiltProject)
{
// Stop processing if targe is NOT iOS
if (buildTarget != BuildTarget.iOS)
{
return;
}
/// Initialize PbxProject
var projectPath = PBXProject.GetPBXProjectPath(pathToBuiltProject);
PBXProject pbxProject = new PBXProject();
pbxProject.ReadFromFile(projectPath);
// Unity 2019 대응
#if UNITY_2019_3_OR_NEWER
//string targetGuid = pbxProject.GetUnityFrameworkTargetGuid();
string strMainTargetGuid = pbxProject.GetUnityMainTargetGuid();
string strFrameworkTargetGuid = pbxProject.GetUnityFrameworkTargetGuid();
#else
string targetGuid = pbxProject.TargetGuidByName("Unity-iPhone");
#endif
// Add push notifications as a capability on the target
pbxProject.AddCapability(targetGuid, UnityEditor.iOS.Xcode.Custom.PBXCapabilityType.PushNotifications);
// Apply settings
File.WriteAllText(projectPath, pbxProject.WriteToString());
}
}
3-1) 주의사항
기존 PBXProject는 UnityEditor.iOS.Xcode.PBXProject인데, 추가 된 플러그인을 사용하기 위해 UnityEditor.iOS.Xcode.Custom.PBXProject로 변경필요.