Net.Like.Xue.Tokyo/Assets/Vuplex/WebView/Standalone/Mac/Editor/MacBuildScript.cs

59 lines
2.1 KiB
C#

// Copyright (c) 2025 Vuplex Inc. All rights reserved.
//
// Licensed under the Vuplex Commercial Software Library License, you may
// not use this file except in compliance with the License. You may obtain
// a copy of the License at
//
// https://vuplex.com/commercial-library-license
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#if UNITY_STANDALONE_OSX
#pragma warning disable CS0618
using System.IO;
using UnityEditor;
using UnityEditor.Build;
using UnityEditor.Callbacks;
using UnityEngine.Rendering;
using Vuplex.WebView.Internal;
namespace Vuplex.WebView.Editor {
public class MacBuildScript : IPreprocessBuild {
public int callbackOrder { get => 0; }
public void OnPreprocessBuild(BuildTarget buildTarget, string buildPath) {
if (buildTarget != BuildTarget.StandaloneOSX) {
return;
}
#if !VUPLEX_DISABLE_GRAPHICS_API_WARNING
var selectedGraphicsApi = PlayerSettings.GetGraphicsAPIs(buildTarget)[0];
var error = VXUtils.GetGraphicsApiErrorMessage(selectedGraphicsApi, new GraphicsDeviceType[] { GraphicsDeviceType.Metal });
if (error != null) {
throw new BuildFailedException(error);
}
#endif
}
[PostProcessBuild]
public static void OnPostProcessBuild(BuildTarget target, string pathToBuiltProject) {
if (target != BuildTarget.StandaloneOSX) {
return;
}
// Delete all of the .meta files added by Unity because they cause a codesign mismatch
// which causes app notarization to fail.
var metaFiles = Directory.GetFiles(pathToBuiltProject, "*.meta", SearchOption.AllDirectories);
foreach (var file in metaFiles) {
File.Delete(file);
}
}
}
}
#endif