diff --git a/Packages/io.chainsafe.web3-unity/Editor/StrippingLevelCheckBuildPreprocessor.cs b/Packages/io.chainsafe.web3-unity/Editor/StrippingLevelCheckBuildPreprocessor.cs new file mode 100644 index 000000000..694efe486 --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Editor/StrippingLevelCheckBuildPreprocessor.cs @@ -0,0 +1,31 @@ +using UnityEditor; +using UnityEditor.Build; +using UnityEditor.Build.Reporting; + +public class StrippingLevelCheckBuildPreprocessor : IPreprocessBuildWithReport +{ + private const string dialogMessage = "Some of the components of the ChainSafe Gaming SDK might not behave properly when stripping level is stricter than Minimal.\n\nDo you want to switch the stripping level setting to Minimal?"; + private const string dialogTitle = "Set Stripping Level to Minimal"; + + public int callbackOrder { get; } + + public void OnPreprocessBuild(BuildReport report) + { + var buildGroup = report.summary.platformGroup; + + var strippingLevel = PlayerSettings.GetManagedStrippingLevel(buildGroup); + + if (strippingLevel == ManagedStrippingLevel.Disabled) return; + if (strippingLevel == ManagedStrippingLevel.Minimal) return; + + var switchToMinimal = EditorUtility.DisplayDialog( + dialogTitle, + dialogMessage, + "Switch to Minimal", + "Ignore"); + + if (!switchToMinimal) return; + + PlayerSettings.SetManagedStrippingLevel(buildGroup, ManagedStrippingLevel.Minimal); + } +} \ No newline at end of file diff --git a/Packages/io.chainsafe.web3-unity/Editor/StrippingLevelCheckBuildPreprocessor.cs.meta b/Packages/io.chainsafe.web3-unity/Editor/StrippingLevelCheckBuildPreprocessor.cs.meta new file mode 100644 index 000000000..d62442fce --- /dev/null +++ b/Packages/io.chainsafe.web3-unity/Editor/StrippingLevelCheckBuildPreprocessor.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 1e07e36f93e644768a40926a6edddf87 +timeCreated: 1717493155 \ No newline at end of file