private void GetInternalDependencies(string dependencyPath) { var networkDependency = new NetworkDependency { name = AppodealDependencyUtils.GetConfigName(dependencyPath) }; #region iOSInternalDependencies var sourcesiOS = new List <string>(); string podName = null; string version = null; string minTargetSdk = null; XmlUtilities.ParseXmlTextFileElements(dependencyPath, (reader, elementName, isStart, parentElementName, elementNameStack) => { if (elementName == "dependencies" && parentElementName == "" || elementName == "iosPods" && (parentElementName == "dependencies" || parentElementName == "")) { return(true); } if (elementName == "iosPod" && parentElementName == "iosPods") { if (isStart) { podName = reader.GetAttribute("name"); version = reader.GetAttribute("version"); minTargetSdk = reader.GetAttribute("minTargetSdk"); sourcesiOS = new List <string>(); if (podName == null) { Debug.Log( $"Pod name not specified while reading {dependencyPath}:{reader.LineNumber}\n"); return(false); } } else { if (podName != null && version != null && minTargetSdk != null) { if (!podName.Contains(AppodealDependencyUtils.APDAppodealAdExchangeAdapter)) { networkDependency.ios_info = new NetworkDependency.iOSDependency(podName, version, AppodealDependencyUtils.GetiOSContent(dependencyPath)); } } } return(true); } if (elementName == "sources" && parentElementName == "iosPod") { return(true); } if (elementName == "sources" && parentElementName == "iosPods") { if (isStart) { sourcesiOS = new List <string>(); } else { using (var enumerator = sourcesiOS.GetEnumerator()) { while (enumerator.MoveNext()) { var current = enumerator.Current; Debug.Log(current); } } } return(true); } if (!(elementName == "source") || !(parentElementName == "sources")) { return(false); } if (isStart && reader.Read() && reader.NodeType == XmlNodeType.Text) { sourcesiOS.Add(reader.ReadContentAsString()); } return(true); }); #endregion #region AndroidInternalDependencies var sources = new List <string>(); string specName; XmlUtilities.ParseXmlTextFileElements(dependencyPath, (reader, elementName, isStart, parentElementName, elementNameStack) => { if (elementName == "dependencies" && parentElementName == "" || elementName == "androidPackages" && (parentElementName == "dependencies" || parentElementName == "")) { return(true); } if (elementName == "androidPackage" && parentElementName == "androidPackages") { if (isStart) { specName = reader.GetAttribute("spec"); sources = new List <string>(); if (specName == null) { Debug.Log( $"Pod name not specified while reading {dependencyPath}:{reader.LineNumber}\n"); return(false); } foreach (var s in new List <string> { "vast", "nast", "mraid", "appodealx", "appodeal" }) { if (!specName.Contains(s)) { if (specName.Contains(AppodealDependencyUtils.Replace_dependency_value)) { networkDependency.android_info = new NetworkDependency.AndroidDependency( AppodealDependencyUtils.GetAndroidDependencyName(specName), AppodealDependencyUtils.GetAndroidDependencyVersion(specName), AppodealDependencyUtils.GetAndroidContent(dependencyPath)); } else if (specName.Contains(AppodealDependencyUtils.Replace_dependency_core)) { networkDependency.android_info = new NetworkDependency.AndroidDependency( "appodeal", AppodealDependencyUtils.GetAndroidDependencyCoreVersion(specName), AppodealDependencyUtils.GetAndroidContent(dependencyPath)); } } else { return(false); } } } return(true); } if (elementName == "sources" && parentElementName == "androidPackage") { return(true); } if (elementName == "sources" && parentElementName == "androidPackages") { if (isStart) { sources = new List <string>(); } else { using (var enumerator = sources.GetEnumerator()) { while (enumerator.MoveNext()) { var current = enumerator.Current; Debug.Log(current); } } } return(true); } if (elementName != "source" || parentElementName != "sources") { return(false); } if (isStart && reader.Read() && reader.NodeType == XmlNodeType.Text) { sources.Add(reader.ReadContentAsString()); } return(true); }); #endregion if (!string.IsNullOrEmpty(networkDependency.name)) { internalDependencies.Add(networkDependency.name, networkDependency); } }