com.guru.unity.max/Moloco/Scripts/Editor/PodfileEditor.cs

63 lines
2.6 KiB
C#

#if UNITY_IOS || UNITY_IPHONE
using System.IO;
using System.Linq;
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEngine;
namespace Moloco.Scripts.Editor
{
public class PodfileEditor
{
// [PostProcessBuild(45)] // Add to the Podfile after it's generated (40) but before "pod install" (50)
public static void OnPostProcessBuild(BuildTarget buildTarget, string pathToBuiltProject)
{
if (buildTarget != BuildTarget.iOS)
{
return;
}
string podfilePath = Path.Combine(pathToBuiltProject, "Podfile");
if (File.Exists(podfilePath))
{
var codeSigningStyle = PlayerSettings.iOS.appleEnableAutomaticSigning ? "Automatic" : "Manual";
var teamId = PlayerSettings.iOS.appleDeveloperTeamID;
var provisioningProfileId = PlayerSettings.iOS.iOSManualProvisioningProfileID;
var provisioningProfileType = PlayerSettings.iOS.iOSManualProvisioningProfileType;
string[] molocoTargets =
{
"MolocoSDKiOS-MolocoSDK",
"MolocoCustomAdapter-MolocoCustomAdapter",
"MolocoCustomAdapterAppLovin-MolocoCustomAdapterAppLovin",
"MolocoCustomAdapterIronSource-MolocoCustomAdapterIronSource"
};
var molocoTargetsString = string.Join(", ", molocoTargets.Select(element => $"'{element}'"));
using var sw = File.AppendText(podfilePath);
sw.WriteLine("\n\n\npost_install do |installer|");
sw.WriteLine(" installer.pods_project.targets.each do |target|");
sw.WriteLine(" target.build_configurations.each do |config|");
sw.WriteLine(" if [" + molocoTargetsString + "].include? target.name");
sw.WriteLine(" config.build_settings['CODE_SIGN_STYLE'] = '" + codeSigningStyle + "'");
sw.WriteLine(" config.build_settings['DEVELOPMENT_TEAM'] = '" + teamId + "'");
if (!PlayerSettings.iOS.appleEnableAutomaticSigning)
{
sw.WriteLine(" config.build_settings['PROVISIONING_PROFILE_APP'] = '" + provisioningProfileId + "\'");
}
sw.WriteLine(" end");
sw.WriteLine(" end");
sw.WriteLine(" end");
sw.WriteLine("end");
}
else
{
Debug.LogWarning("Podfile not found in the Xcode project.");
}
}
}
}
#endif