private void OnGUI()
            {
                this.titleContent = new GUIContent("App Tracking Transparency");

                GUILayout.Space(10);
                GUILayout.Label("Editor manager status", EditorStyles.boldLabel);
                GUILayout.Space(10);
                GUILayout.Label("The tracking authorization status in the editor.", EditorStyles.miniLabel);
                var authorizationStatus = (AppTrackingTransparencyAuthorizationStatus)EditorGUILayout.EnumPopup("Authorization Status", AppTrackingTransparencyEditorPrefs.AuthorizationStatus);

                AppTrackingTransparencyEditorPrefs.AuthorizationStatus = authorizationStatus;

                GUILayout.Space(10);
                GUILayout.Label("The IDFA returned by the manager in the editor. You can select your own, or randomize it.", EditorStyles.miniLabel);
                GUI.enabled = authorizationStatus == AppTrackingTransparencyAuthorizationStatus.Authorized;
                var storedIdfa = EditorGUILayout.TextField("IDFA", AppTrackingTransparencyEditorPrefs.Idfa);

                if (GUILayout.Button("Random IDFA", new [] { GUILayout.MaxWidth(150) }))
                {
                    storedIdfa = Guid.NewGuid().ToString("D").ToUpper(CultureInfo.InvariantCulture);
                }

                AppTrackingTransparencyEditorPrefs.Idfa = storedIdfa;
                GUI.enabled = true;

                if (GUILayout.Button("Reset status", new [] { GUILayout.MaxWidth(150) }))
                {
                    AppTrackingTransparencyEditorPrefs.Clear();
                }

                var labelWidth = EditorGUIUtility.labelWidth;

                EditorGUIUtility.labelWidth = 250;
                GUILayout.Space(50);
                GUILayout.Label("iOS Build Settings", EditorStyles.boldLabel);
                GUILayout.Space(10);

                var settings = AppTrackingTransparencySettingsManager.LoadSettings();

                GUILayout.Label("Settings file v" + settings.SettingsFileVersion, EditorStyles.miniLabel);
                GUILayout.Label(AppTrackingTransparencySettingsManager.PrintableProjectSettingsFilePath, EditorStyles.miniLabel);

                GUILayout.Space(10);

                settings.AutomaticPostProcessing = EditorGUILayout.Toggle("Automatic postprocessing", settings.AutomaticPostProcessing);
                if (settings.AutomaticPostProcessing)
                {
                    settings.AutomaticPostProcessingCallbackOrder = EditorGUILayout.IntField("Postprocessing Callback Order", settings.AutomaticPostProcessingCallbackOrder);

                    GUILayout.Space(10);
                    settings.AddAppTransparencyTrackingFramework = EditorGUILayout.Toggle("Add AppTrackingTransparency.framework", settings.AddAppTransparencyTrackingFramework);
                    if (!settings.AddAppTransparencyTrackingFramework)
                    {
                        GUILayout.Label(GetAppTrackingTransparencyHint(), EditorStyles.miniLabel);
                    }

                    GUILayout.Space(10);
                    settings.AddUserTrackingUsageDescription = EditorGUILayout.Toggle("Add NSUserTrackingUsageDescription", settings.AddUserTrackingUsageDescription);
                    if (settings.AddUserTrackingUsageDescription)
                    {
                        settings.UserTrackingUsageDescription = EditorGUILayout.TextField("Tracking Usage Description", settings.UserTrackingUsageDescription);
                        settings.AutoDetectInfoPlistFilePath  = EditorGUILayout.Toggle("Auto-detect Info.plist file", settings.AutoDetectInfoPlistFilePath);
                        if (!settings.AutoDetectInfoPlistFilePath)
                        {
                            settings.MainInfoPlistFilePath = EditorGUILayout.TextField("Info.plist file path", settings.MainInfoPlistFilePath);
                        }
                    }
                    else
                    {
                        GUILayout.Label(GetUserTrackingUsageDescriptionHint(), EditorStyles.miniLabel);
                    }
                }
                else
                {
                    GUILayout.Label("By disabling automatic post-processing you will need to handle it on your own", EditorStyles.miniLabel);
                    GUILayout.Label("- " + GetAppTrackingTransparencyHint(), EditorStyles.miniLabel);
                    GUILayout.Label("- " + GetUserTrackingUsageDescriptionHint(), EditorStyles.miniLabel);
                }

                GUILayout.Space(10);
                if (GUILayout.Button("Reset to default", new [] { GUILayout.MaxWidth(150) }))
                {
                    AppTrackingTransparencySettingsManager.DeleteSettings();
                    settings = AppTrackingTransparencySettingsManager.LoadSettings();
                }

                AppTrackingTransparencySettingsManager.WriteSettings(settings);

                EditorGUIUtility.labelWidth = labelWidth;
            }
 private static void ResetState()
 {
     AppTrackingTransparencyEditorPrefs.Clear();
 }