125 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			125 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | #if UNITY_EDITOR && UNITY_IOS | |||
|  | using System.IO; | |||
|  | using ThinkingData.Analytics.Utils; | |||
|  | using UnityEditor; | |||
|  | using UnityEditor.Callbacks; | |||
|  | using UnityEditor.iOS.Xcode; | |||
|  | using UnityEngine; | |||
|  | 
 | |||
|  | namespace ThinkingData.Analytics.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("[ThinkingData] Warning: 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"); | |||
|  |             TDPublicConfig.GetPublicConfig(); | |||
|  |             foreach (string item in TDPublicConfig.DisPresetProperties) | |||
|  |             { | |||
|  |                 plist.root["TDDisPresetProperties"].AsArray().AddString(item); | |||
|  |             } | |||
|  |             plist.WriteToFile(plistPath); | |||
|  |         } | |||
|  |     } | |||
|  | } | |||
|  | #endif | |||
|  | 
 | |||
|  | #if UNITY_OPENHARMONY | |||
|  | using System.IO; | |||
|  | using UnityEditor; | |||
|  | using UnityEditor.Callbacks; | |||
|  | 
 | |||
|  | namespace ThinkingData.Analytics.Editors | |||
|  | { | |||
|  |     public class TD_PostProcessBuild | |||
|  |     { | |||
|  |         [PostProcessBuildAttribute(88)] | |||
|  |         public static void OnPostProcessBuild(BuildTarget target, string targetPath) | |||
|  |         { | |||
|  |             string path = Path.Combine(targetPath, "entry/oh-package.json5"); | |||
|  |             string jsonContent = File.ReadAllText(path); | |||
|  |             jsonContent = jsonContent.Replace("\"TDAnalytics\"", "\"@thinkingdata/analytics\""); | |||
|  |             File.WriteAllText(path, jsonContent); | |||
|  |         } | |||
|  |     } | |||
|  | } | |||
|  | #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 ThinkingData.Analytics.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 |