public static void OnPostProcessBuild(BuildTarget buildTarget, string pathToBuiltProject) { var dataPath = Application.dataPath; var len = dataPath.Length - "Assets".Length; var unityProjectDir = dataPath.Remove(len); if (buildTarget == BuildTarget.iOS) { #if UNITY_IOS PostProcessIOS(unityProjectDir, pathToBuiltProject); #endif } else if (buildTarget == BuildTarget.Android) { #if UNITY_ANDROID string androidProjPath = MSLDPostProcessCommonAndroid.GetProjectPathFromBuild(pathToBuiltProject); PostProcessAndroid(Path.GetFullPath(unityProjectDir), Path.GetFullPath(androidProjPath)); #endif } }
public static bool PostProcessAndroid(string unityProjectDir, string androidProjectDir) { // 拷贝配置文件 string confiFilePath = Path.Combine(unityProjectDir, "Assets/Plugins/iDreamsky/msld/Android/msConfig.json"); string toPath = Path.Combine(androidProjectDir, "src/main/assets/msld/config/msConfig.json"); MSLDPostProcessCommonAndroid.copyFile(confiFilePath, toPath); // 修改Manifest if (!MSLDPostProcessCommonAndroid.ChangeAndroidManifestAndroid(androidProjectDir, (xmlDocument, appElement, activityElement) => { activityElement.SetAttribute("android:name", "com.ms.sdk.plugin.unity.MSLDUnityActivity"); string namespaceUrl = ""; if (activityElement.GetAttributeNode("android:name") != null) { namespaceUrl = activityElement.GetAttributeNode("android:name").NamespaceURI; } Debug.Log("MSLD post set com.ms.sdk.plugin.unity.MSUnityApplication"); appElement.SetAttribute("name", namespaceUrl, "com.ms.sdk.plugin.unity.MSUnityApplication"); appElement.SetAttribute("usesCleartextTraffic", namespaceUrl, "true"); // 极光一键登录配置 MSLDPostProcessConfig cfg = MSLDPostProcessCommonAndroid.ReadMsConfig(unityProjectDir); Debug.Log("MSLD post jg_app_key:" + cfg.jg_app_key); if (cfg.jg_app_key != null && cfg.jg_app_key.Length > 0) { XmlElement manifest = (XmlElement)xmlDocument.SelectSingleNode("manifest"); var android = manifest.GetAttribute("xmlns:android"); XmlElement node = xmlDocument.CreateElement("meta-data"); node.SetAttribute("name", android, "JPUSH_APPKEY"); node.SetAttribute("value", android, cfg.jg_app_key); appElement.AppendChild(node); AddJiGuangActivity(xmlDocument, appElement); } return(true); })) { return(false); } // 修改gradle if (!ChangeGradleFileAndroid(androidProjectDir)) { return(false); } // 删除可能重复的资源 var fileAndroid = Path.Combine(androidProjectDir, "libs/android-support-v4.jar"); if (File.Exists(fileAndroid)) { Debug.Log("[MSLDPostProcess][Android][ChangeGradleFile]: remove fileAndroid"); File.Delete(fileAndroid); } //// 拷贝java文件 //string javaFilePath = Path.Combine(unityProjectDir, "Assets/Plugins/iDreamsky/msld/Android/java/com/ms"); //string javaToPath = Path.Combine(androidProjectDir, "src/main/java/com/ms"); //MSLDPostProcessCommonAndroid.copyDir(javaFilePath, javaToPath); return(true); }