105 lines
3.9 KiB
C#
105 lines
3.9 KiB
C#
#if UNITY_EDITOR && UNITY_IOS
|
|
using System.IO;
|
|
using ThinkingAnalytics.Utils;
|
|
using UnityEditor;
|
|
using UnityEditor.Callbacks;
|
|
using UnityEditor.iOS.Xcode;
|
|
using UnityEngine;
|
|
|
|
namespace ThinkingAnalytics.Editors
|
|
{
|
|
public class TD_PostProcessBuild
|
|
{
|
|
//Xcode Build Settings
|
|
//[PostProcessBuild]
|
|
[PostProcessBuildAttribute(88)]
|
|
public static void OnPostProcessBuild(BuildTarget target, string targetPath)
|
|
{
|
|
if (target != BuildTarget.iOS)
|
|
{
|
|
Debug.LogWarning("[ThinkingEngine] Target is not iOS. XCodePostProcess will not run");
|
|
return;
|
|
}
|
|
|
|
string projPath = Path.GetFullPath(targetPath) + "/Unity-iPhone.xcodeproj/project.pbxproj";
|
|
|
|
PBXProject proj = new PBXProject();
|
|
proj.ReadFromFile(projPath);
|
|
#if UNITY_2019_3_OR_NEWER
|
|
string targetGuid = proj.GetUnityFrameworkTargetGuid();
|
|
#else
|
|
string targetGuid = proj.TargetGuidByName(PBXProject.GetUnityTargetName());
|
|
#endif
|
|
|
|
//Build Property
|
|
proj.SetBuildProperty(targetGuid, "ENABLE_BITCODE", "NO");//BitCode NO
|
|
proj.SetBuildProperty(targetGuid, "GCC_ENABLE_OBJC_EXCEPTIONS", "YES");//Enable Objective-C Exceptions
|
|
proj.AddBuildProperty(targetGuid, "OTHER_LDFLAGS", "-ObjC");
|
|
|
|
string[] headerSearchPathsToAdd = { "$(SRCROOT)/Libraries/Plugins/iOS/ThinkingSDK/Source/main", "$(SRCROOT)/Libraries/Plugins/iOS/ThinkingSDK/Source/common" };
|
|
proj.UpdateBuildProperty(targetGuid, "HEADER_SEARCH_PATHS", headerSearchPathsToAdd, null);// Header Search Paths
|
|
|
|
//Add Frameworks
|
|
proj.AddFrameworkToProject(targetGuid, "WebKit.framework", true);
|
|
proj.AddFrameworkToProject(targetGuid, "CoreTelephony.framework", true);
|
|
proj.AddFrameworkToProject(targetGuid, "SystemConfiguration.framework", true);
|
|
proj.AddFrameworkToProject(targetGuid, "Security.framework", true);
|
|
proj.AddFrameworkToProject(targetGuid, "UserNotifications.framework", true);
|
|
|
|
//Add Lib
|
|
proj.AddFileToBuild(targetGuid, proj.AddFile("usr/lib/libsqlite3.tbd", "libsqlite3.tbd", PBXSourceTree.Sdk));
|
|
proj.AddFileToBuild(targetGuid, proj.AddFile("usr/lib/libz.tbd", "libz.tbd", PBXSourceTree.Sdk));
|
|
|
|
proj.WriteToFile(projPath);
|
|
|
|
//Info.plist
|
|
//Disable preset properties
|
|
string plistPath = Path.Combine(targetPath, "Info.plist");
|
|
PlistDocument plist = new PlistDocument();
|
|
plist.ReadFromFile(plistPath);
|
|
plist.root.CreateArray("TDDisPresetProperties");
|
|
TD_PublicConfig.GetPublicConfig();
|
|
foreach (string item in TD_PublicConfig.DisPresetProperties)
|
|
{
|
|
plist.root["TDDisPresetProperties"].AsArray().AddString(item);
|
|
}
|
|
plist.WriteToFile(plistPath);
|
|
}
|
|
}
|
|
}
|
|
#endif
|
|
|
|
|
|
#if UNITY_EDITOR && UNITY_ANDROID && UNITY_2019_1_OR_NEWER
|
|
using UnityEditor;
|
|
using UnityEditor.Android;
|
|
using UnityEngine;
|
|
using System.IO;
|
|
using System.Xml;
|
|
using System.Collections.Generic;
|
|
|
|
namespace ThinkingAnalytics.Editors
|
|
{
|
|
|
|
class TD_PostProcessBuild : IPostGenerateGradleAndroidProject
|
|
{
|
|
// Copy configuration file ta_public_config.xml
|
|
public int callbackOrder { get { return 0; } }
|
|
public void OnPostGenerateGradleAndroidProject(string path)
|
|
{
|
|
// Copy configuration file ta_public_config.xml
|
|
string desPath = path + "/../launcher/src/main/res/values/ta_public_config.xml";
|
|
if (File.Exists(desPath))
|
|
{
|
|
File.Delete(desPath);
|
|
}
|
|
TextAsset textAsset = Resources.Load<TextAsset>("ta_public_config");
|
|
if (textAsset != null && textAsset.bytes != null)
|
|
{
|
|
File.WriteAllBytes(desPath, textAsset.bytes);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#endif
|