コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】使用している Xcode のバージョンを取得する関数

概要

using System;
using System.Diagnostics;
using System.Linq;

namespace Kogane
{
    /// <summary>
    /// Xcode のバージョンを取得する時に使用するクラス
    /// </summary>
    public static class GetXcodeVersion
    {
        //================================================================================
        // 関数(static)
        //================================================================================
        /// <summary>
        /// Xcode のバージョンを返します
        /// </summary>
        public static string Get()
        {
            var startInfo = new ProcessStartInfo
            {
                FileName               = "xcodebuild",
                Arguments              = "-version",
                RedirectStandardOutput = true,
                UseShellExecute        = false,
                CreateNoWindow         = true
            };

            using var process = Process.Start( startInfo );

            var output = process!.StandardOutput.ReadToEnd();

            process.WaitForExit();

            if ( string.IsNullOrWhiteSpace( output ) ) return string.Empty;

            var lines = output.Split( new[] { '\n' }, StringSplitOptions.RemoveEmptyEntries );
            var line  = lines.FirstOrDefault( x => x.StartsWith( "Xcode", StringComparison.Ordinal ) );

            if ( string.IsNullOrWhiteSpace( line ) ) return string.Empty;

            return line
                    .Replace( "Xcode", "" )
                    .Trim()
                ;
        }
    }
}

使用例

Debug.Log( GetXcodeVersion.Get() );