protected static IPhoneSdkVersion[] EnumerateSdks(string sdkDir, string name) { if (!Directory.Exists(sdkDir)) { return(new IPhoneSdkVersion[0]); } var sdks = new List <string> (); foreach (var dir in Directory.GetDirectories(sdkDir)) { if (!File.Exists(Path.Combine(dir, "SDKSettings.plist"))) { continue; } string d = Path.GetFileName(dir); if (!d.StartsWith(name, StringComparison.Ordinal)) { continue; } d = d.Substring(name.Length); if (!d.EndsWith(".sdk", StringComparison.Ordinal)) { continue; } d = d.Substring(0, d.Length - ".sdk".Length); if (d.Length > 0) { sdks.Add(d); } } var vs = new List <IPhoneSdkVersion> (); foreach (var s in sdks) { try { vs.Add(IPhoneSdkVersion.Parse(s)); } catch (Exception ex) { LoggingService.LogError("Could not parse {0} SDK version '{1}':\n{2}", name, s, ex.ToString()); } } var versions = vs.ToArray(); Array.Sort(versions); return(versions); }
IPhoneSdkVersion ReadVersion() { var versionFile = Path.Combine(SdkDir, "Version"); if (File.Exists(versionFile)) { try { return(IPhoneSdkVersion.Parse(File.ReadAllText(versionFile).Trim())); } catch (Exception ex) { LoggingService.LogError("Failed to read Xamarin.iOS version", ex); } } return(new IPhoneSdkVersion()); }