Skip to content

Commit 3916ccf

Browse files
authored
Merge pull request #586 from OneSignal/develop
Merge develop into main
2 parents f2f2bf0 + 8ab6927 commit 3916ccf

File tree

2 files changed

+37
-6
lines changed

2 files changed

+37
-6
lines changed

OneSignalExample/Assets/OneSignal/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1414
- Updated Unity Verified Solutions Attribution script from VspAttribution to VSAttribution
1515
### Fixed
1616
- Resolved serialization depth limit 10 exceeded warning log
17+
- Fixed InstallEdm4uStep to work with UPM EDM4U installations
1718

1819
## [3.0.7]
1920
### Changed

com.onesignal.unity.core/Editor/SetupSteps/InstallEdm4uStep.cs

Lines changed: 36 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
using System;
3131
using System.IO;
3232
using System.Text.RegularExpressions;
33+
using System.Reflection;
3334

3435
namespace OneSignalSDK {
3536
/// <summary>
@@ -46,37 +47,66 @@ public override string Details
4647
public override bool IsRequired
4748
=> true;
4849

49-
protected override bool _getIsStepCompleted() {
50+
private Version _getAssetsEDM4UVersion() {
5051
var isInstalled = CompilationPipeline.GetPrecompiledAssemblyNames()
5152
.Any(assemblyName => assemblyName.StartsWith("Google.VersionHandler"));
5253

5354
if (!isInstalled)
54-
return false;
55+
return null;
5556

5657
var path = "Assets/ExternalDependencyManager/Editor";
5758
var directoryInfo = new DirectoryInfo(path);
5859

5960
if (!directoryInfo.Exists)
60-
return false;
61+
return null;
6162

6263
FileInfo[] files;
6364

6465
try {
6566
files = directoryInfo.GetFiles("external-dependency-manager_version-*_manifest.txt");
6667
} catch (Exception) {
67-
return false;
68+
return null;
6869
}
6970

7071
if (files.Length != 1) {
71-
SDKDebug.Warn("EDM4U version number could not be determined.");
72-
return false;
72+
return null;
7373
}
7474

7575
var file = files[0];
7676
var pattern = @"external-dependency-manager_version-(.+)_manifest\.txt";
7777
var match = Regex.Match(file.Name, pattern);
7878
var version = new Version(match.Groups[1].Value);
7979

80+
return version;
81+
}
82+
83+
private Version _getPackagesEDM4UVersion() {
84+
var assembly = AppDomain.CurrentDomain.GetAssemblies().FirstOrDefault(x => x.GetName().Name.StartsWith("Google.PackageManagerResolver"));
85+
if (assembly == null)
86+
return null;
87+
88+
var type = assembly.GetType("Google.PackageManagerResolverVersionNumber", false);
89+
if (type == null)
90+
return null;
91+
92+
var property = type.GetProperty("Value", BindingFlags.Static | BindingFlags.Public);
93+
if (property == null)
94+
return null;
95+
96+
var version = (Version)property.GetValue(null);
97+
return version;
98+
}
99+
100+
protected override bool _getIsStepCompleted() {
101+
var version = _getAssetsEDM4UVersion();
102+
if (version == null)
103+
version = _getPackagesEDM4UVersion();
104+
105+
if (version == null) {
106+
SDKDebug.Warn("EDM4U version number could not be determined.");
107+
return false;
108+
}
109+
80110
var expectedVersion = new Version(_edm4UVersion);
81111

82112
return version >= expectedVersion;

0 commit comments

Comments
 (0)