private void OnEnable() { var props = serializedObject; showInEditorProp = props.FindProperty("showInEditor"); withAudienceDefinitionProp = props.FindProperty("withAudienceDefinition"); withDeclineOptionProp = props.FindProperty("withDeclineOption"); withMediationSettingsProp = props.FindProperty("withMediationSettings"); withRequestTrackingTransparencyProp = props.FindProperty("withRequestTrackingTransparency"); uiPrefabProp = props.FindProperty("uiPrefab"); settingsTogglePrefabProp = props.FindProperty("settingsTogglePrefab"); privacyPolicyUrlProp = props.FindProperty("privacyPolicyUrl"); termsOfUseUrlProp = props.FindProperty("termsOfUseUrl"); trackingUsageDescriptionProp = props.FindProperty("trackingUsageDescription"); privacyPolicyList = new ReorderableList(props, privacyPolicyUrlProp, true, true, true, true) { drawHeaderCallback = DrawPrivacyPolicyHeader, drawElementCallback = DrawURLElement, elementHeight = EditorGUIUtility.singleLineHeight * 2.0f + 8.0f }; termsOfUseList = new ReorderableList(props, termsOfUseUrlProp, true, true, true, true) { drawHeaderCallback = DrawTermsOfUseHeader, drawElementCallback = DrawURLElement, elementHeight = privacyPolicyList.elementHeight }; allowedPackageUpdate = Utils.IsPackageExist(packageName); EditorApplication.delayCall += () => newCASVersion = Utils.GetNewVersionOrNull(gitRepoName, UserConsent.version, false); }
private static void CopyRawSettingsFile(string rootPath, PBXProject project, string target, CASInitSettings casSettings) { if (!casSettings) { return; } var resourcesBuildPhase = project.GetResourcesBuildPhaseByTarget(target); for (int i = 0; i < casSettings.managersCount; i++) { string managerId = casSettings.GetManagerId(i); int managerIdLength = managerId.Length; string suffixChar = char.ToLower(managerId[managerIdLength - 1]).ToString(); string fileName = "cas_settings" + managerIdLength.ToString() + suffixChar + ".json"; string pathInAssets = CASEditorUtils.GetNativeSettingsPath(BuildTarget.iOS, managerId); if (File.Exists(pathInAssets)) { try { File.Copy(pathInAssets, Path.Combine(rootPath, fileName), true); var fileGuid = project.AddFile(fileName, fileName, PBXSourceTree.Source); project.AddFileToBuildSection(target, resourcesBuildPhase, fileGuid); } catch (Exception e) { Debug.LogWarning(CASEditorUtils.logTag + "Copy Raw File To XCode Project failed: " + e.ToString()); } } else { Debug.Log(CASEditorUtils.logTag + "Not found Raw file: " + pathInAssets); } } }
private static void UpdateSKAdNetworksInfo(PlistDocument plist) { var templateFile = CASEditorUtils.GetTemplatePath(CASEditorUtils.iosSKAdNetworksTemplateFile); if (string.IsNullOrEmpty(templateFile)) { Debug.LogError(CASEditorUtils.logTag + "Not found SKAdNetworkItems. Try reimport CAS package."); return; } var networksLines = File.ReadAllLines(templateFile); PlistElementArray adNetworkItems; var adNetworkItemsField = plist.root["SKAdNetworkItems"]; if (adNetworkItemsField == null) { adNetworkItems = plist.root.CreateArray("SKAdNetworkItems"); } else { adNetworkItems = adNetworkItemsField.AsArray(); } for (int i = 0; i < networksLines.Length; i++) { if (!string.IsNullOrEmpty(networksLines[i])) { var dict = adNetworkItems.AddDict(); dict.SetString("SKAdNetworkIdentifier", networksLines[i]); } } }
protected override void OnHeaderGUI() { EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); GUILayout.Label("CleverAdsSolutions", HelpStyles.largeTitleStyle); GUILayout.Label("Consent", HelpStyles.largeTitleStyle, GUILayout.ExpandWidth(false)); EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); Utils.OnHeaderGUI(gitRepoName, allowedPackageUpdate, UserConsent.version, ref newCASVersion); }
public static CASEditorSettings Load(bool createAsset = false) { var asset = CASEditorUtils.GetSettingsAsset("CASEditorSettings", CASEditorUtils.editorFolderPath, typeof(CASEditorSettings), createAsset, null); if (asset) { return(( CASEditorSettings )asset); } return(CreateInstance <CASEditorSettings>()); }
[PostProcessBuild(47)] //must be between 40 and 50 to ensure that it's not overriden by Podfile generation (40) and that it's added before "pod install" (50) public static void MainPostprocess(BuildTarget target, string buildPath) { if (target != BuildTarget.iOS) { return; } // Init Settings can be null var initSettings = CASEditorUtils.GetSettingsAsset(BuildTarget.iOS, false); var editorSettings = CASEditorSettings.Load(); var depManager = DependencyManager.Create(BuildTarget.iOS, Audience.Mixed, true); string plistPath = Path.Combine(buildPath, "Info.plist"); PlistDocument plist = new PlistDocument(); plist.ReadFromFile(plistPath); UpdateGADDelayMeasurement(plist, editorSettings); UpdateGADAppId(plist, initSettings, depManager); UpdateSKAdNetworksInfo(plist); UpdateLSApplicationQueriesSchames(plist); UpdateAppTransportSecuritySettings(plist); SetAttributionReportEndpoint(plist, editorSettings); SetDefaultUserTrackingDescription(plist, editorSettings); File.WriteAllText(plistPath, plist.WriteToString()); var project = OpenXCode(buildPath); string mainTargetGuid; string frameworkTargetGuid; GetTargetsGUID(project, out mainTargetGuid, out frameworkTargetGuid); EnableSwiftLibraries(buildPath, project, mainTargetGuid, frameworkTargetGuid); CopyRawSettingsFile(buildPath, project, mainTargetGuid, initSettings); SetExecutablePath(buildPath, project, mainTargetGuid, depManager); SaveXCode(project, buildPath); if (editorSettings.generateIOSDeepLinksForPromo) { ApplyCrosspromoDynamicLinks(buildPath, mainTargetGuid, initSettings, depManager); } #if UNITY_2019_3_OR_NEWER UpdatePodfileForUnity2019(buildPath); #endif Debug.Log(CASEditorUtils.logTag + "Postrocess Build done."); }
private static void UpdateGADAppId(PlistDocument plist, CASInitSettings initSettings, DependencyManager deps) { if (!initSettings) { return; } #region Read Admob App ID from CAS Settings bool admobAppIdRequired = deps == null; if (deps != null) { var admobDep = deps.Find(AdNetwork.GoogleAds); if (admobDep != null) { admobAppIdRequired = admobDep.IsInstalled(); } } string admobAppId = null; if (initSettings.managersCount > 0) { string settingsPath = CASEditorUtils.GetNativeSettingsPath(BuildTarget.iOS, initSettings.GetManagerId(0)); if (File.Exists(settingsPath)) { try { admobAppId = CASEditorUtils.GetAdmobAppIdFromJson(File.ReadAllText(settingsPath)); } catch (Exception e) { if (!initSettings.IsTestAdMode() && admobAppIdRequired) { CASEditorUtils.StopBuildWithMessage(e.ToString(), BuildTarget.iOS); } } } } if (string.IsNullOrEmpty(admobAppId) && initSettings.IsTestAdMode()) { admobAppId = CASEditorUtils.iosAdmobSampleAppID; } #endregion if (!string.IsNullOrEmpty(admobAppId)) { plist.root.SetString("GADApplicationIdentifier", admobAppId); } }