void Init() { string currentLocation = IsInstalled ? Path.Combine(BinDir, "mtouch") : null; IsInstalled = false; versions = null; if (string.IsNullOrEmpty(SdkDir)) { foreach (var loc in DefaultLocations) { if (IsInstalled = ValidateSdkLocation(loc, out hasUsrSubdir)) { SdkDir = loc; break; } } } else { IsInstalled = ValidateSdkLocation(SdkDir, out hasUsrSubdir); } string mtouch = null; if (IsInstalled) { mtouch = Path.Combine(BinDir, "mtouch"); lastMTExeWrite = File.GetLastWriteTimeUtc(mtouch); Version = ReadVersion(); if (Version.CompareTo(requiredXI) >= 0) { LoggingService.LogInfo("Found Xamarin.iOS, version {0}.", Version); var path = Path.Combine(SdkDir, "Versions.plist"); if (File.Exists(path)) { try { versions = PDictionary.FromFile(path); } catch { LoggingService.LogWarning("Xamarin.iOS installation is corrupt: invalid Versions.plist at {0}.", path); } } if (versions == null) { versions = CreateDefaultVersionsPlist(); } } else { SdkNotInstalledReason = string.Format("Found unsupported Xamarin.iOS, version {0}.\nYou need Xamarin.iOS {1} or above.", Version, requiredXI.ToString()); LoggingService.LogWarning(SdkNotInstalledReason); Version = new IPhoneSdkVersion(); versions = new PDictionary(); IsInstalled = false; } AnalyticsService.ReportSdkVersion("XS.Core.SDK.iOS.Version", Version.ToString()); } else { lastMTExeWrite = DateTime.MinValue; Version = new IPhoneSdkVersion(); versions = new PDictionary(); SdkNotInstalledReason = string.Format("Xamarin.iOS not installed.\nCan't find mtouch or the Version file at {0}.", SdkDir); LoggingService.LogInfo(SdkNotInstalledReason); AnalyticsService.ReportSdkVersion("XS.Core.SDK.iOS.Version", string.Empty); } if (Changed != null && currentLocation != mtouch) { Changed(this, EventArgs.Empty); } }
public string GetSdkPath(IPhoneSdkVersion version, bool sim) { return(GetSdkPath(version.ToString(), sim)); }