Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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());
        }