// Copies `AndroidManifestTemplate.xml` to `AndroidManifest.xml` // then replace `${manifestApplicationId}` with current packagename in the Unity settings. internal static void createOneSignalAndroidManifest() { var oneSignalConfigPath = OneSignalFileLocator.GetOneSignalConfigFolderNameWithPath() + "/"; string manifestFullPath = oneSignalConfigPath + "AndroidManifest.xml"; File.Copy(oneSignalConfigPath + "AndroidManifestTemplate.xml", manifestFullPath, true); StreamReader streamReader = new StreamReader(manifestFullPath); string body = streamReader.ReadToEnd(); streamReader.Close(); #if UNITY_5_6_OR_NEWER body = body.Replace("${manifestApplicationId}", PlayerSettings.applicationIdentifier); #else body = body.Replace("${manifestApplicationId}", PlayerSettings.bundleIdentifier); #endif using (var streamWriter = new StreamWriter(manifestFullPath, false)) { streamWriter.Write(body); } }
// This renames the folder "OneSignalConfig" to "OneSignal.plugin". // ".plugin" is Unity documented folder post-fix required for some plugins features. // - This is required to fix Unity 2020+ capability. // This is done via a script since .unitypackage files do not support renaming // and so this is required for those upgrading from an older version of the SDK. private static void RenameAndroidOneSignalConfig() { var path = OneSignalFileLocator.GetOneSignalConfigFolderNameWithPath(); OSUnityEditorUtils.AppendFileExtensionIfMissing(path, "plugin"); }