12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #if UNITY_IOS
- #if UNITY_2018_1_OR_NEWER
- #define UNITY_SUPPORTS_BUILD_REPORT
- #endif
- using System.Collections;
- using System.Collections.Generic;
- using System.IO;
- using UnityEngine;
- using UnityEditor;
- using UnityEngine.Rendering;
- using UnityEditor.Build;
- #if UNITY_SUPPORTS_BUILD_REPORT
- using UnityEditor.Build.Reporting;
- #endif
- //-----------------------------------------------------------------------------
- // Copyright 2012-2022 RenderHeads Ltd. All rights reserved.
- //-----------------------------------------------------------------------------
- namespace RenderHeads.Media.AVProMovieCapture.Editor
- {
- public class PreProcessBuild_iOS :
- #if UNITY_SUPPORTS_BUILD_REPORT
- IPreprocessBuildWithReport
- #else
- IPreprocessBuild
- #endif
- {
- public int callbackOrder { get { return 0; } }
- #if UNITY_SUPPORTS_BUILD_REPORT
- public void OnPreprocessBuild(BuildReport report)
- {
- OnPreprocessBuild(report.summary.platform, report.summary.outputPath);
- }
- #endif
- public void OnPreprocessBuild(BuildTarget target, string path)
- {
- if (target != BuildTarget.iOS)
- return;
- FindAndRemoveStaticLib();
- }
- private void FindAndRemoveStaticLib()
- {
- // Find all assets whose name begins "libAVProMovieCapture"
- string libAVProMovieCapture = "libAVProMovieCapture";
- string[] guids = AssetDatabase.FindAssets(libAVProMovieCapture);
- if (guids.Length == 0)
- return;
- // Get the paths to those assets, discarding those who aren't a complete match
- List<string> paths = new List<string>();
- foreach (string guid in guids)
- {
- string path = AssetDatabase.GUIDToAssetPath(guid);
- string filename = Path.GetFileNameWithoutExtension(path);
- if (filename == libAVProMovieCapture)
- paths.Add(path);
- }
- if (paths.Count == 0)
- return;
- // We need to delete some files
- Debug.LogWarning("libAVProMovieCapture.a is no longer required and will be removed from your project.");
- Debug.Log("If you selected 'Append' your project will not build in Xcode this time. Please select 'Replace' to refresh the project files.");
- foreach (string path in paths)
- {
- Debug.Log("Deleting: " + path);
- System.IO.File.Delete(path);
- System.IO.File.Delete(path + ".meta");
- }
- }
- }
- }
- #endif // UNITY_IOS
|