Skip to content

Commit a7799d5

Browse files
committed
automatically migrate project files for Unity 6
Automatically update Assets/Plugins/Android/OneSignalConfig.androidlib/build.gradle with the contains provided by the OneSignal SDK. This way the app developer doesn't have to take any manual steps when upgrading to Unity 6. The changes to build.gradle were done in commit d253d42
1 parent d7d7e6a commit a7799d5

File tree

2 files changed

+43
-2
lines changed

2 files changed

+43
-2
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
using System.IO;
2+
using UnityEditor;
3+
4+
namespace OneSignalSDK {
5+
6+
[InitializeOnLoad]
7+
sealed class MigrateAndroidResources {
8+
static MigrateAndroidResources() {
9+
UpdateBuildDotGradleContains();
10+
}
11+
12+
/// <summary>
13+
/// Updates Assets/Plugins/Android/OneSignalConfig.androidlib/build.gradle
14+
/// with contains provided by OneSignal-Unity-SDK 5.1.13.
15+
/// Includes compatibility with Unity 6, as it's Gradle version has new
16+
/// requirements.
17+
/// </summary>
18+
private static void UpdateBuildDotGradleContains() {
19+
if (!Directory.Exists(ExportAndroidResourcesStep._pluginExportPath))
20+
return;
21+
22+
string exportedFilename = Path.Combine(
23+
ExportAndroidResourcesStep._pluginExportPath,
24+
"build.gradle"
25+
);
26+
string exportedContains = File.ReadAllText(exportedFilename);
27+
28+
string packageFilename = Path.Combine(
29+
ExportAndroidResourcesStep._pluginPackagePath,
30+
"build.gradle"
31+
);
32+
string packageContains = File.ReadAllText(packageFilename);
33+
34+
// We want to copy only when needed, otherwise it can reset file
35+
// properties, such as permissions and timestamps
36+
if (exportedContains != packageContains) {
37+
File.Copy(packageFilename, exportedFilename, true);
38+
}
39+
}
40+
}
41+
}

com.onesignal.unity.android/Editor/SetupSteps/ExportAndroidResourcesStep.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,8 @@ private void MigratePluginToAndroidlib() {
131131
private static readonly string _packagePath = Path.Combine("Packages", "com.onesignal.unity.android", "Editor");
132132
private static readonly string _androidPluginsPath = Path.Combine("Assets", "Plugins", "Android");
133133

134-
private static readonly string _pluginPackagePath = Path.Combine(_packagePath, _pluginName);
135-
private static readonly string _pluginExportPath = Path.Combine(_androidPluginsPath, _pluginName);
134+
internal static readonly string _pluginPackagePath = Path.Combine(_packagePath, _pluginName);
135+
internal static readonly string _pluginExportPath = Path.Combine(_androidPluginsPath, _pluginName);
136136

137137
private static readonly string _manifestPackagePath = Path.Combine(_pluginPackagePath, "AndroidManifest.xml");
138138
private static readonly string _manifestExportPath = Path.Combine(_pluginExportPath, "AndroidManifest.xml");

0 commit comments

Comments
 (0)