public static void Create()
    {
        CriWareBuildPostprocessor instance = (CriWareBuildPostprocessor)AssetDatabase.LoadAssetAtPath(prefsFilePath, typeof(CriWareBuildPostprocessor));

        if (instance)
        {
            Debug.LogError("[CRIWARE] Preferences file of CriWareBuildPostprocessor already exists. '(" + prefsFilePath + ")");
            Selection.activeObject = instance;
            return;
        }

        var scobj = ScriptableObject.CreateInstance <CriWareBuildPostprocessor>();

        if (scobj == null)
        {
            Debug.Log("[CRIWARE] Failed to create CriWareBuildPostprocessor");
            return;
        }

        Directory.CreateDirectory(Path.GetDirectoryName(prefsFilePath));
        AssetDatabase.CreateAsset(scobj, prefsFilePath);

        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();

        Debug.Log("[CRIWARE] Created the preferences file of CriWareBuildPostprocessor. (" + prefsFilePath + ")");

        Selection.activeObject = scobj;
    }
    public static void OnPostprocessBuild(BuildTarget build_target, string path)
    {
        CriWareBuildPostprocessor instance = LoadExistingAsset();

        if (instance == null)
        {
            instance = ScriptableObject.CreateInstance <CriWareBuildPostprocessor>();
            Debug.Log(
                "[CRIWARE] Run CriWareBuildPostprocessor.OnPostprocessBuild with default preferences.\n"
                + "If you want to change the preferences, please create the preferences file by 'GameObject/CRIWARE/Create CriWareBuildPostprocessorPrefs.asset' menu."
                );
        }
        else
        {
            Debug.Log(
                "[CRIWARE] Run CriWareBuildPostprocessor.OnPostprocessBuild with default preferences.\n"
                + "If you want to change the preferences, please edit the preferences file (" + prefsFilePath + ")"
                );
        }

        instance.IosAddDependencyFrameworksProcess(build_target, path,
                                                   instance.iosAddDependencyFrameworks,
                                                   instance.iosReorderLibraryLinkingsForVp9);
        switch (build_target)
        {
        case BuildTarget.WebGL:
            instance.PostprocessBuildWebGL(path);
            break;
        }
    }
    public static void OnPostprocessBuild(BuildTarget build_target, string path)
    {
        CriWareBuildPostprocessor instance = (CriWareBuildPostprocessor)AssetDatabase.LoadAssetAtPath(prefsFilePath, typeof(CriWareBuildPostprocessor));

        if (instance == null)
        {
            instance = new CriWareBuildPostprocessor();
            Debug.Log(
                "[CRIWARE] Run CriWareBuildPostprocessor.OnPostprocessBuild with default preferences.\n"
                + "If you want to change the preferences, please create the preferences file by 'CRI/Create CriWareBuildPostprocessorPrefs.asset' menu."
                );
        }
        else
        {
            Debug.Log(
                "[CRIWARE] Run CriWareBuildPostprocessor.OnPostprocessBuild with default preferences.\n"
                + "If you want to change the preferences, please edit the preferences file (" + prefsFilePath + ")"
                );
        }

        if (instance.iosAddDependencyFrameworks)
        {
            instance.IosAddDependencyFrameworksProcess(build_target, path);
        }

        switch (build_target)
        {
        case BuildTarget.WebGL:
            instance.PostprocessBuildWebGL(path);
            break;
        }
    }
    public static void Create()
    {
        CriWareBuildPostprocessor instance = LoadExistingAsset();

        if (instance)
        {
            Debug.LogError("[CRIWARE] Preferences file of CriWareBuildPostprocessor already exists.");
            Selection.activeObject = instance;
            return;
        }

        var scobj = ScriptableObject.CreateInstance <CriWareBuildPostprocessor>();

        if (scobj == null)
        {
            Debug.Log("[CRIWARE] Failed to create CriWareBuildPostprocessor");
            return;
        }

        var script = MonoScript.FromScriptableObject(scobj);

        prefsFilePath = Path.Combine(Directory.GetParent(AssetDatabase.GetAssetPath(script)).ToString(), "CriWareBuildPostprocessorPrefs.asset");

        Directory.CreateDirectory(Path.GetDirectoryName(prefsFilePath));
        AssetDatabase.CreateAsset(scobj, prefsFilePath);

        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();

        Debug.Log("[CRIWARE] Created the preferences file of CriWareBuildPostprocessor. (" + prefsFilePath + ")");

        Selection.activeObject = scobj;
    }
    public static void OnPostprocessBuild(BuildTarget build_target, string path)
    {
        CriWareBuildPostprocessor instance = (CriWareBuildPostprocessor)AssetDatabase.LoadAssetAtPath(prefsFilePath, typeof(CriWareBuildPostprocessor));

        if (instance == null)
        {
            instance = ScriptableObject.CreateInstance <CriWareBuildPostprocessor>();
            Debug.Log(
                "[CRIWARE] Run CriWareBuildPostprocessor.OnPostprocessBuild with default preferences.\n"
                + "If you want to change the preferences, please create the preferences file by 'CRI/Create CriWareBuildPostprocessorPrefs.asset' menu."
                );
        }
        else
        {
            Debug.Log(
                "[CRIWARE] Run CriWareBuildPostprocessor.OnPostprocessBuild with default preferences.\n"
                + "If you want to change the preferences, please edit the preferences file (" + prefsFilePath + ")"
                );
        }

        instance.IosAddDependencyFrameworksProcess(build_target, path,
                                                   instance.iosAddDependencyFrameworks,
                                                   instance.iosReorderLibraryLinkingsForVp9);
    }