diff --git a/Assets/ExternalDependencyManager/Editor/1.2.186/Google.IOSResolver.dll b/Assets/ExternalDependencyManager/Editor/1.2.186/Google.IOSResolver.dll
new file mode 100644
index 0000000..3003055
Binary files /dev/null and b/Assets/ExternalDependencyManager/Editor/1.2.186/Google.IOSResolver.dll differ
diff --git a/Assets/ExternalDependencyManager/Editor/1.2.186/Google.IOSResolver.dll.meta b/Assets/ExternalDependencyManager/Editor/1.2.186/Google.IOSResolver.dll.meta
new file mode 100644
index 0000000..26d1b45
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/1.2.186/Google.IOSResolver.dll.meta
@@ -0,0 +1,38 @@
+fileFormatVersion: 2
+guid: e2d7ea0845de4cf984265d2a444b7aa4
+labels:
+- gvh
+- gvh_version-1.2.186
+- gvhp_exportpath-ExternalDependencyManager/Editor/1.2.186/Google.IOSResolver.dll
+- gvhp_targets-editor
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 0
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ DefaultValueInitialized: true
+ - first:
+ Windows Store Apps: WindowsStoreApps
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ExternalDependencyManager/Editor/1.2.186/Google.IOSResolver.pdb.meta b/Assets/ExternalDependencyManager/Editor/1.2.186/Google.IOSResolver.pdb.meta
index 0dae8b3..ac203f5 100644
--- a/Assets/ExternalDependencyManager/Editor/1.2.186/Google.IOSResolver.pdb.meta
+++ b/Assets/ExternalDependencyManager/Editor/1.2.186/Google.IOSResolver.pdb.meta
@@ -2,8 +2,10 @@ fileFormatVersion: 2
guid: baf24db2bf904e729e7796721c09e8ad
labels:
- gvh
+- gvh_rename_to_disable
- gvh_version-1.2.186
- gvhp_exportpath-ExternalDependencyManager/Editor/1.2.186/Google.IOSResolver.pdb
+- gvhp_targets-editor
DefaultImporter:
externalObjects: {}
userData:
diff --git a/Assets/ExternalDependencyManager/Editor/1.2.186/Google.JarResolver.dll b/Assets/ExternalDependencyManager/Editor/1.2.186/Google.JarResolver.dll
new file mode 100644
index 0000000..645d5cd
Binary files /dev/null and b/Assets/ExternalDependencyManager/Editor/1.2.186/Google.JarResolver.dll differ
diff --git a/Assets/ExternalDependencyManager/Editor/1.2.186/Google.JarResolver.dll.meta b/Assets/ExternalDependencyManager/Editor/1.2.186/Google.JarResolver.dll.meta
new file mode 100644
index 0000000..05ebd81
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/1.2.186/Google.JarResolver.dll.meta
@@ -0,0 +1,38 @@
+fileFormatVersion: 2
+guid: fa49a85d4ba140a0ae21528ed12d174c
+labels:
+- gvh
+- gvh_version-1.2.186
+- gvhp_exportpath-ExternalDependencyManager/Editor/1.2.186/Google.JarResolver.dll
+- gvhp_targets-editor
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ DefaultValueInitialized: true
+ - first:
+ Windows Store Apps: WindowsStoreApps
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ExternalDependencyManager/Editor/1.2.186/Google.JarResolver.pdb.meta b/Assets/ExternalDependencyManager/Editor/1.2.186/Google.JarResolver.pdb.meta
index 2483bf8..86a7d87 100644
--- a/Assets/ExternalDependencyManager/Editor/1.2.186/Google.JarResolver.pdb.meta
+++ b/Assets/ExternalDependencyManager/Editor/1.2.186/Google.JarResolver.pdb.meta
@@ -2,8 +2,10 @@ fileFormatVersion: 2
guid: d13c8602d5e14e43b0e92459754c4315
labels:
- gvh
+- gvh_rename_to_disable
- gvh_version-1.2.186
- gvhp_exportpath-ExternalDependencyManager/Editor/1.2.186/Google.JarResolver.pdb
+- gvhp_targets-editor
DefaultImporter:
externalObjects: {}
userData:
diff --git a/Assets/ExternalDependencyManager/Editor/1.2.186/Google.PackageManagerResolver.dll b/Assets/ExternalDependencyManager/Editor/1.2.186/Google.PackageManagerResolver.dll
new file mode 100644
index 0000000..a4a6590
Binary files /dev/null and b/Assets/ExternalDependencyManager/Editor/1.2.186/Google.PackageManagerResolver.dll differ
diff --git a/Assets/ExternalDependencyManager/Editor/1.2.186/Google.PackageManagerResolver.dll.meta b/Assets/ExternalDependencyManager/Editor/1.2.186/Google.PackageManagerResolver.dll.meta
new file mode 100644
index 0000000..0cc442e
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/1.2.186/Google.PackageManagerResolver.dll.meta
@@ -0,0 +1,38 @@
+fileFormatVersion: 2
+guid: d8bb10c56a0147bc855a6296778e025e
+labels:
+- gvh
+- gvh_version-1.2.186
+- gvhp_exportpath-ExternalDependencyManager/Editor/1.2.186/Google.PackageManagerResolver.dll
+- gvhp_targets-editor
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ DefaultValueInitialized: true
+ - first:
+ Windows Store Apps: WindowsStoreApps
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ExternalDependencyManager/Editor/1.2.186/Google.PackageManagerResolver.pdb.meta b/Assets/ExternalDependencyManager/Editor/1.2.186/Google.PackageManagerResolver.pdb.meta
index 841282c..bf635cb 100644
--- a/Assets/ExternalDependencyManager/Editor/1.2.186/Google.PackageManagerResolver.pdb.meta
+++ b/Assets/ExternalDependencyManager/Editor/1.2.186/Google.PackageManagerResolver.pdb.meta
@@ -2,8 +2,10 @@ fileFormatVersion: 2
guid: a695eb9f64fe49569a2db0c4246c877d
labels:
- gvh
+- gvh_rename_to_disable
- gvh_version-1.2.186
- gvhp_exportpath-ExternalDependencyManager/Editor/1.2.186/Google.PackageManagerResolver.pdb
+- gvhp_targets-editor
DefaultImporter:
externalObjects: {}
userData:
diff --git a/Assets/ExternalDependencyManager/Editor/1.2.186/Google.VersionHandlerImpl.dll b/Assets/ExternalDependencyManager/Editor/1.2.186/Google.VersionHandlerImpl.dll
new file mode 100644
index 0000000..8562ef3
Binary files /dev/null and b/Assets/ExternalDependencyManager/Editor/1.2.186/Google.VersionHandlerImpl.dll differ
diff --git a/Assets/ExternalDependencyManager/Editor/1.2.186/Google.VersionHandlerImpl.dll.meta b/Assets/ExternalDependencyManager/Editor/1.2.186/Google.VersionHandlerImpl.dll.meta
new file mode 100644
index 0000000..f325e22
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/1.2.186/Google.VersionHandlerImpl.dll.meta
@@ -0,0 +1,38 @@
+fileFormatVersion: 2
+guid: 5980a684c61d42fbb6b74e2eb3477016
+labels:
+- gvh
+- gvh_version-1.2.186
+- gvhp_exportpath-ExternalDependencyManager/Editor/1.2.186/Google.VersionHandlerImpl.dll
+- gvhp_targets-editor
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 0
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ DefaultValueInitialized: true
+ - first:
+ Windows Store Apps: WindowsStoreApps
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ExternalDependencyManager/Editor/1.2.186/Google.VersionHandlerImpl.pdb.meta b/Assets/ExternalDependencyManager/Editor/1.2.186/Google.VersionHandlerImpl.pdb.meta
index 690752e..9d29d58 100644
--- a/Assets/ExternalDependencyManager/Editor/1.2.186/Google.VersionHandlerImpl.pdb.meta
+++ b/Assets/ExternalDependencyManager/Editor/1.2.186/Google.VersionHandlerImpl.pdb.meta
@@ -2,8 +2,10 @@ fileFormatVersion: 2
guid: 9f56badf3ca84753b00163c3b632d4e5
labels:
- gvh
+- gvh_rename_to_disable
- gvh_version-1.2.186
- gvhp_exportpath-ExternalDependencyManager/Editor/1.2.186/Google.VersionHandlerImpl.pdb
+- gvhp_targets-editor
DefaultImporter:
externalObjects: {}
userData:
diff --git a/Assets/ExternalDependencyManager/Editor/CHANGELOG.md b/Assets/ExternalDependencyManager/Editor/CHANGELOG.md
new file mode 100644
index 0000000..e1294a3
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/CHANGELOG.md
@@ -0,0 +1,1430 @@
+# Version 1.2.186 - May 19, 2025
+* iOS Resolver - Set `validateReferences` to off by default,
+ to prevent errors when running without iOS Support installed.
+ Fixes #412 and #622
+
+# Version 1.2.185 - Feb 3, 2025
+* Android Resolver - Reverse conditional checker for `packaging` keyword in maintemplate based on android gradle plugin version. Fixes #715
+
+# Version 1.2.184 - Jan 28, 2025
+* Android Resolver - Update and resolve `packaging` keyword in maintemplate
+ based on android gradle plugin version.
+ Fixes #715
+
+# Version 1.2.183 - Sep 18, 2024
+* Android Resolver - Handle package paths that don't include a version hash,
+ which is no longer present with Unity 6. Fixes #697
+* Android Resolver - Handle packages referenced using local file paths.
+ Fixes #701
+
+# Version 1.2.182 - Aug 2, 2024
+* General - Check for gradle version instead of Unity version when determining
+ the template files to modify.
+
+# Version 1.2.181 - Jun 26, 2024
+* General - Disable `EditorMeasurement` reporting that relied on the
+ Measurement Protocol for Universal Analytics.
+
+# Version 1.2.180 - Jun 4, 2024
+* General - Fix project settings resetting on domain reload.
+ Fixes #524
+
+# Version 1.2.179 - Feb 12, 2024
+* Android Resolver - Added logic to automatically turn on `mainTemplate.gradle`
+ for new projects, and prompt users to enable it on projects that have previously
+ had the resolver run.
+
+# Version 1.2.178 - Dec 20, 2023
+* Added [OpenUPM support](https://openupm.com/packages/com.google.external-dependency-manager/).
+
+# Version 1.2.177 - Aug 14, 2023
+* iOS Resolver - Added `/opt/homebrew/bin` to Cocoapod executable search path.
+ Fixes #627
+
+# Version 1.2.176 - Apr 27, 2023
+* Android Resolver - Added two Android Resolver settings to determine whether
+ EDM4U injects custom local Maven repo path as a relative path or full path.
+ Fixes #537
+* Android Resolver - Inject Maven Repo to `settingTemplate.gradle` from
+ Unity 2022.2+
+ Fixes #594
+* Android Resolver - Jetifier option is enabled by default now.
+* Android Resolver - `Explode Aar` option applies to all cases, whether the
+ project will be exported or not.
+ Fixes #584
+ Fixes #287
+
+# Version 1.2.175 - Nov 16, 2022
+* General - Added tvOS podfile support to the iOS resolver.
+
+# Version 1.2.174 - Oct 06, 2022
+* General - Added tvOS support to the iOS resolver.
+* General - Fixed #484 - Changed `EditorMeasurement` to use secure connection.
+* Android Resolver - Fixed Android Resolver unable to resolve
+ `mainTemplate.gradle` in Unity `2022.2+` or `2023.1+`.
+
+# Version 1.2.173 - Sep 28, 2022
+* General - Added tvOS library support to the export unity package scripts.
+
+# Version 1.2.172 - Jun 23, 2022
+* iOS Resolver - Stop forcing `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` to `YES`,
+ which seems to cause problem for some when submitting apps. See #526 for more
+ information.
+
+# Version 1.2.171 - May 11, 2022
+* iOS Resolver - Change `Enable Swift Framework Support Workaround` setting to
+ be `ON` by default since more pods are using Swift Framework now.
+
+# Version 1.2.170 - Apr 4, 2022
+* Android Resolver - Fixes #498 - Fix the path separator of the Maven repo
+ injected to `mainTemplate.gradle`.
+* iOS Resolver - Fixes #470 - Switch default Cocoapods master repo from Github
+ to CDN.
+* iOS Resolver - `Link Framework Statically` setting is now default to `true`.
+ That is, `use_frameworks! :linkage => static` will be added to `Podfile` by
+ default instead of `use_frameworks!`. This can be changed in iOS Resolver
+ settings. This fixes odd behaviors when pods include static libraries, ex.
+ Firebase Analytics.
+* iOS Resolver - Added a workaround when app crashes on launch due to
+ `Library not loaded: @rpath/libswiftCore.dylib` when some pods includes Swift
+ framework. This is turned `OFF` by default and can be changed in iOS Resolver
+ settings.
+
+# Version 1.2.169 - Jan 20, 2022
+* General - Fixes #425 - Change to save `GvhProjectSettings.xml` without
+ Unicode byte order mark (BoM).
+* Android Resolver - Remove reference to `jcenter()`
+* iOS Resolver - Force setting `LANG` when executing Cocoapods in shell mode on
+ Mac.
+
+# Version 1.2.168 - Dec 9, 2021
+* All - Fixes #472 by removing the use of `System.Diagnostics.Debug.Assert`
+* All - Fixed #477 by properly enabling EDM4U libraries for Unity 2021.2+ when
+ the package is installed through `.tgz`
+
+# Version 1.2.167 - Oct 6, 2021
+* All - Moved versioned `.dll` in EDM4U to a versioned folder and remove their
+ version postfix in their filename. For instance, `IOSResolver.dll` will be
+ placed at `ExternalDependencyManager/Editor/1.2.167/Google.IOSResolver.dll`.
+* Android Resolver - Fixed #243 by only using the highest version in
+ `mainTemplate.gradle` when duplicated dependencies are presented.
+* Android Resolver - Added supports to x86_64 to ABI list for Android apps on
+ Chrome OS.
+
+# Version 1.2.166 - Jun 30, 2021
+* All - Fixed #440 and fixed #447 by specifying the parameter type while calling
+ `GetApplicationIdentifier()` Unity API using reflection, due to a new
+ overloaded method introduced in Unity 2021.2.
+* Android Resolver - Fixed #442 by patching `Dependency.IsGreater()` when the
+ version strings end '+'.
+
+# Version 1.2.165 - Apr 28, 2021
+## Bug Fixes
+* Version Handler - Fixed #431 by replacing the use of `HttpUtility.UrlEncode()`
+ which causes NullReferenceException in certain version of Unity.
+* Android Resolver - Check that androidSdkRootPath directory exists before using
+ as sdkPath.
+* Android Resolver - Fixed Android Resolver integration tests with Unity
+ 2019.3+.
+
+# Version 1.2.164 - Feb 4, 2021
+## New Features
+* Android Resolver - Added support for Android packages with classifier in their
+ namespaces.
+* iOS Resolver - Added new settings in iOS Resolver to configure generated
+ Podfile.
+* iOS Resolver - Added a new attribute `addToAllTargets` in Dependencies.xml.
+
+## Bug Fixes
+* iOS Resolver - Fixed XML parsing for `bitcodeEnabled` attribute in
+ Dependencies.xml.
+
+# Version 1.2.163 - Dec 15, 2020
+## Bug Fixes
+* Version Handler - Fixed measurement reporting
+
+# Version 1.2.162 - Nov 19, 2020
+## Bug Fixes
+* Version Handler - Improved #413 by preventing Version Handler from running
+ from static constructor when it is disabled.
+* Package Manager Resolver - Remove GPR
+
+# Version 1.2.161 - Oct 12, 2020
+## Bug Fixes
+* Android Resolver - Fixed the issue that Android Resolver does not resolve
+ again before build in Unity 2020 if it failed to resolve previously.
+
+# Version 1.2.160 - Sep 30, 2020
+## Bug Fixes
+* Android Resolver - Fixed a regression that gradleResolver can be null until
+ Initialize() is called.
+* Android Resolver - Fixed a regression that Android Resolver failed in Unity
+ 2019.3+ due to `gradleTemplate.properties` not enabled when
+ `mainTemplate.gradle` is not enabled at all.
+
+# Version 1.2.159 - Sep 11, 2020
+## Bug Fixes
+* Android Resolver - Fixed #322 where the Unity editor will lose its target SDK
+ setting between Unity restarts if `>28` is selected in 2019. This is due to
+ Unity AndroidSdkVersions enum does not contain values above 28.
+* Android Resolver - Fixed #360 where building Android app with Untiy 2019.3+
+ may fail due to Jetifier and AndroidX not enabled properly in generated
+ Gradle project. This fix requires the user to enable
+ `Custom Gradle Properties Template` found under
+ `Player Settings > Settings for Android > Publishing Settings`.
+
+# Version 1.2.158 - Sep 3, 2020
+## Bug Fixes
+* Version Handler: Fixed editor freeze when `-executeMethod` is used in
+ non-batch mode.
+* Android Resolver: Normalized file paths when generating local Maven repo
+ since the path may contains a mix of forward and backward slash on Windows.
+* Export Unity Package: Fixed generation of .unitypackage with tarfile on
+ Windows.
+
+# Version 1.2.157 - Aug 6, 2020
+## Bug Fixes
+* Android Resolver: Delay initialization until active build target is Android
+ and the editor is not in play mode.
+* iOS Resolver: Delay initialization until active build target is iOS
+ and the editor is not in play mode.
+* Export Unity Package: Workaround directory creation racy if multiple export
+ operations are spawned at the same time.
+
+# Version 1.2.156 - June 10, 2020
+## Bug Fixes
+* Android Resolver: Fixed that the generated local repo assets contains
+ redundent labels which are causing Version Handler to failed while
+ uninstalling packages.
+* Android Resolver: Fixed that the repo url injected into mainTemplate.gradle
+ is incorrect when Unity is configured to export gradle project.
+* Android Resolver: Limited to only create local Maven repo when the source
+ repo contains ".srcaar" file.
+
+## Changes
+* All: Described EDM4U analytics data usage in readme.
+
+# Version 1.2.155 - May 14, 2020
+## Bug Fixes
+* All: Fixed compiler error when build with Unity 5.4 or below due to the
+ usage of Rect.zero.
+* All: Ignore cases when checking command line arguments.
+
+# Version 1.2.154 - May 14, 2020
+## Bug Fixes
+* All: Make each MultiSelectWindow for different purposes to have its own
+ unique window.
+
+## Changes
+* All: Replace all dialog with DialogWindow which is implemented from
+ EditorWindow.
+* Package Manager Resolver: Clarify how manifest.json will be changed in Package
+ Manager Resolver window.
+
+# Version 1.2.153 - Apr 24, 2020
+## Bug Fixes
+* Android Resolver: Fixed an exception when repainting the Android resolution
+ window in Unity 2019.3.x.
+
+# Version 1.2.152 - Apr 17, 2020
+## Bug Fixes
+* Version Handler: Fixed exception when waiting for enabled editor DLLs to
+ load.
+* Android Resolver: Fixed regression when using a Custom Gradle Template
+ on Windows.
+
+# Version 1.2.151 - Apr 16, 2020
+## Bug Fixes
+* Version Handler: When waiting for newly enabled editor DLLs to load, ignore
+ all DLLs that do not have a file-system location.
+* Android Resolver: Fixed resolution when using a Custom Gradle Template with
+ libraries stored in a local maven repository distributed with a plugin
+ installed with the Unity Package Manager.
+
+# Version 1.2.150 - Apr 9, 2020
+## Bug Fixes
+* All: The new packaging script when run on MacOS was generating a
+ .unitypackage archive that could not be read by Unity on Windows.
+ This release simply repackages the plugin with tar/gzip to fix the problem.
+
+# Version 1.2.149 - Apr 8, 2020
+## Bug Fixes
+* Package Manager Resolver: Fixed spurious error message when resuming
+ migration after installing a UPM package.
+
+# Version 1.2.148 - Apr 8, 2020
+## Bug Fixes
+* Package Manager Resolver: Fixed an exception when resuming migration
+ after installing a UPM package.
+
+# Version 1.2.147 - Apr 8, 2020
+## Bug Fixes
+* Version Handler: Fixed alias traversal bug which caused problems when
+ migrating from installed .unitypackage files to UPM packages.
+
+# Version 1.2.146 - Apr 8, 2020
+## Bug Fixes
+* Version Handler: Fixed exception in manifest parsing when a manifest is
+ detected with no aliases.
+
+# Version 1.2.145 - Apr 2, 2020
+## New Features
+* Package Manager Resolver: Added a method to migrate Version Handler
+ managed packages installed via `.unitypackage` to Unity Package Manager
+ packages. This is initially used to migrate the External Dependency Manager
+ to UPM.
+
+## Changes
+* All: Verbose logging is now no longer automatically enabled in batch mode
+ across all components. Instead logging can be configured using each
+ component's verbose logging setting or by using the `-gvh_log_debug` command
+ line flag when starting Unity.
+* Version Handler: Sped up version handler updates when the app domain isn't
+ reloaded.
+
+## Bug Fixes
+* Version Handler: Fixed the display of the obsolete files clean up dialog
+ when the asset database refreshes.
+* Version Handler: Improved reliability of callback from
+ the VersionHandler.UpdateCompleteMethods event when an asset database
+ refresh occurs.
+* Version Handler: Fixed duplicate exportPath labels when 'Assets/' is the
+ root of paths assigned to files.
+* Version Handler: Handle empty lines in manifest files.
+
+# Version 1.2.144 - Mar 23, 2020
+## Changed
+* iOS Resolver: Removed the ability to configure the Xcode target a Cocoapod
+ is added to.
+
+## Bug Fixes
+* iOS Resolver: Reverted support for adding Cocoapods to multiple targets as
+ it caused a regression (exception thrown during post-build step) in some
+ versions of Unity.
+
+# Version 1.2.143 - Mar 20, 2020
+## Bug Fixes
+* Android Resolver: Fixed caching of resolution state which was causing
+ the resolver to always run when no dependencies had changed.
+
+# Version 1.2.142 - Mar 19, 2020
+## Changes
+* Package Manager Resolver: Enabled auto-add by default.
+
+# Version 1.2.141 - Mar 19, 2020
+## Bug Fixes
+* Fixed a bug when retrieving project settings. If a plugin was configured
+ to fetch project settings, if a setting was fetched (e.g "foo") and this
+ setting existed in the system settings but not the project settings the
+ system value would override the default value leading to unexpected
+ behavior.
+* Fixed a warning when caching web request classes in Unity 5.6.
+
+# Version 1.2.140 - Mar 19, 2020
+## Bug Fixes
+* Fixed measurement reporting in Unity 5.x.
+* Version Handler: Fixed NullReferenceException when an asset doesn't have
+ an AssetImporter.
+
+# Version 1.2.139 - Mar 18, 2020
+## Changed
+* Added documentation to the built plugin.
+
+# Version 1.2.138 - Mar 17, 2020
+## New Features
+* Package Manager Resolver: Added the Package Manager Resolver
+ component that allows developers to easily boostrap Unity Package Manager
+ (UPM) registry addition using unitypackage plugins.
+* Version Handler: Added a window that allows plugins to managed by the
+ Version Handler to be uninstalled.
+* Version Handler: Added support for displaying installed plugins.
+* Version Handler: Added support for moving files in plugins to their install
+ locations (if the plugin has been configured to support this).
+* iOS Resolver: Added the ability to configure the Xcode target a Cocoapod is
+ added to.
+
+## Bug Fixes
+* Fixed upgrade from version 1.2.137 and below after the plugin rename to
+ EDM4U broke the upgrade process.
+* Android Resolver: Worked around PlayerSettings.Android.targetSdkVersion
+ returning empty names for some values in 2019.x.
+* Version Handler: Fixed the display of the obsolete files clean up window.
+* Version Handler: Fixed managed file check when assets are modified in the
+ project after plugin import.
+
+# Version 1.2.137 - Mar 6, 2020
+## Changed
+* Renamed package to External Package Manager for Unity (EDM4U).
+ We changed this to reflect what this plugin is doing today which is far more
+ than the original scope which just consisted of importing jar files from the
+ Android SDK maven repository.
+ Scripts that used to pull `play-services-resolver*.unitypackage` will now have
+ to request `external-dependency-manager*.unitypackage` instead.
+ We'll still be shipping a `play-services-resolver*_manifest.txt` file to
+ handle upgrading from older versions of the plugin.
+
+## New Features
+* All Components: Added reporting of usage so that we can remotely detect
+ errors and target improvements.
+* Android Resolver: Added support for *Dependencies.xml files in Unity Package
+ Manager packages.
+* iOS Resolver: Added support for *Dependencies.xml files in Unity Package
+ Manager packages.
+
+## Bug Fixes
+* Version Handler: Disabled attempts to disable asset metadata modification
+ when assets are in a Unity Package Manager managed package.
+
+# Version 1.2.136 - Feb 19, 2019
+## Bug Fixes
+* Android Resolver: Fixed OpenJDK path discovery in Unity 2019.3.1.
+
+# Version 1.2.135 - Dec 5, 2019
+## Bug Fixes
+* All Components: Fixed stack overflow when loading project settings.
+
+# Version 1.2.134 - Dec 4, 2019
+## Bug Fixes
+* All Components: Fixed an issue which caused project settings to be cleared
+ when running in batch mode.
+
+# Version 1.2.133 - Nov 18, 2019
+## Bug Fixes
+* All Components: Failure to save project settings will now report an error
+ to the log rather than throwing an exception.
+
+# Version 1.2.132 - Nov 11, 2019
+## Bug Fixes
+* Android Resolver: Worked around expansion of DIR_UNITYPROJECT on Windows
+ breaking Gradle builds when used as part of a file URI.
+* Android Resolver: mainTemplate.gradle is only written if it needs to be
+ modified.
+
+# Version 1.2.131 - Oct 29, 2019
+## Bug Fixes
+* Version Handler: Improved execution of events on the main thread in batch
+ mode.
+* Version Handler: Improved log level configuration at startup.
+* Version Handler: Improved performance of class lookup in deferred method
+ calls.
+* Version Handler: Fixed rename to enable / disable for editor assets.
+* iOS Resolver: Improved log level configuration at startup.
+* Android Resolver: Improved local maven repo path reference in
+ mainTemplate.gradle using DIR_UNITYPROJECT. DIR_UNITYPROJECT by Unity
+ to point to the local filesystem path of the Unity project when Unity
+ generates the Gradle project.
+
+# Version 1.2.130 - Oct 23, 2019
+## New Features
+* iOS Resolver: Added support for modifying the Podfile before `pod install`
+ is executed.
+
+## Bug Fixes
+* Version Handler: Fixed invalid classname error when calling
+ `VersionHandler.UpdateVersionedAssets()`.
+
+# Version 1.2.129 - Oct 2, 2019
+## Bug Fixes
+* iOS Resolver: Changed Cocoapod integration in Unity 2019.3+ to
+ only add Pods to the UnityFramework target.
+
+# Version 1.2.128 - Oct 1, 2019
+## Bug Fixes
+* iOS Resolver: Fixed Cocoapod project integration mode with Unity
+ 2019.3+.
+
+# Version 1.2.127 - Sep 30, 2019
+## Changes
+* Android Resolver: All Android Resolver settings File paths are now
+ serialized with POSIX directory separators.
+
+# Version 1.2.126 - Sep 27, 2019
+## Changes
+* Android Resolver: File paths are now serialized with POSIX directory
+ separators.
+## Bug Fixes
+* Android Resolver: Fixed resolution when the parent directory of a Unity
+ project contains a Gradle project (i.e `settings.gradle` file).
+
+# Version 1.2.125 - Sep 23, 2019
+## Bug Fixes
+* All components: Silenced a warning about not being able to set the console
+ encoding to UTF8.
+* Android Resolver: Worked around broken AndroidSDKTools class in some
+ versions of Unity.
+* iOS Resolver: Fixed iOS target SDK version check
+* Version Handler: Changed clean up obsolete files window so that it doesn't
+ exceed the screen size.
+
+# Version 1.2.124 - Jul 28, 2019
+## Bug Fixes
+* All components: Fixed regression with source control integration when using
+ Unity 2019.1+.
+
+# Version 1.2.123 - Jul 23, 2019
+## New Features
+* All components: Source control integration for project settings.
+## Changes
+* Android Resolver: Removed AAR cache as it now makes little difference to
+ incremental resolution performance.
+* Android Resolver: Improved embedded resource management so that embedded
+ resources should upgrade when the plugin is updated without restarting
+ the Unity editor.
+## Bug Fixes
+* Version Handler: Fixed InvokeMethod() and InvokeStaticMethod() when calling
+ methods that have interface typed arguments.
+
+# Version 1.2.122 - Jul 2, 2019
+## Bug Fixes
+* iOS Resolver: Worked around Unity not loading the iOS Resolver DLL as it
+ referenced the Xcode extension in a public interface. The iOS Resolver
+ DLL still references the Xcode extension internally and just handles
+ missing type exceptions dynamically.
+
+# Version 1.2.121 - Jun 27, 2019
+## Bug Fixes
+* Android Resolver: Fixed warning about missing Packages folder when loading
+ XML dependencies files in versions of Unity without the package manager.
+* Android Resolver: Fixed resolution window progress bar exceeding 100%.
+* Android Resolver: If AndroidX is detected in the set of resolved libraries,
+ the user will be prompted to enable the Jetifier.
+* Android Resolver: Improved text splitting in text area windows.
+* iOS Resolver: Added support for Unity's breaking changes to the Xcode API
+ in 2019.3.+. Cocoapods are now added to build targets, Unity-iPhone and
+ UnityFramework in Unity 2019.3+.
+
+# Version 1.2.120 - Jun 26, 2019
+## New Features
+* Android Resolver: Added support for loading *Dependencies.xml files from
+ Unity Package Manager packages.
+* Android Resolver: Resolution window is now closed if resolution runs as
+ a pre-build step.
+* iOS Resolver: Added support for loading *Dependencies.xml files from
+ Unity Package Manager packages.
+## Bug Fixes
+* Android Resolver: Fixed generation of relative repo paths when using
+ mainTemplate.gradle resolver.
+* Android Resolver: Fixed copy of .srcaar to .aar files in repos embedded in a
+ project when a project path has characters (e.g whitespace) that are escaped
+ during conversion to URIs.
+* Android Resolver: Fixed auto-resolution always running if the Android SDK
+ is managed by Unity Hub.
+
+# Version 1.2.119 - Jun 19, 2019
+## Bug Fixes
+* Android Resolver: Fixed error reported when using Jetifier integration
+ in Unity 2018+ if the target SDK is set to "highest installed".
+
+# Version 1.2.118 - Jun 18, 2019
+## New Features
+* Android Resolver: Added initial
+ [Jetifier](https://developer.android.com/studio/command-line/jetifier)
+ integration which simplifies
+ [migration](ttps://developer.android.com/jetpack/androidx/migrate)
+ to Jetpack ([AndroidX](https://developer.android.com/jetpack/androidx))
+ libraries in cases where all dependencies are managed by the Android
+ Resolver.
+ This can be enabled via the `Use Jetifier` option in the
+ `Assets > Play Services Resolver > Android Resolver > Settings` menu.
+ Caveats:
+ - If your project contains legacy Android Support Library .jar and .aar
+ files, these files will need to be removed and replaced with references to
+ artifacts on Maven via `*Dependencies.xml` files so that the Jetifier
+ can map them to Jetpack (AndroidX) libraries.
+ For example, remove the file `support-v4-27.0.2.jar` and replace it with
+ `` in a
+ `*Dependencies.xml` file.
+ - If your project contains .jar or .aar files that use the legacy Android
+ Support Libraries, these will need to be moved into a local Maven repo
+ [See this guide](https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html)
+ and then these files should be removed from your Unity project and instead
+ referenced via `*Dependencies.xml` files so that the Jetifier can
+ patch them to reference the Jetpack lirbaries.
+
+## Bug Fixes
+* Android Resolver: Disabled version locking of com.android.support:multidex
+ does not use the same versioning scheme as other legacy Android support
+ libraries.
+* Version Handler: Made Google.VersionHandler.dll's asset GUID stable across
+ releases. This faciliates error-free import into projects where
+ Google.VersionHandler.dll is moved from the default install location.
+
+# Version 1.2.117 - Jun 12, 2019
+## Bug Fixes
+* Android Resolver: Fix copying of .srcaar to .aar files for
+ mainTemplate.gradle resolution. PluginImporter configuration was previously
+ not being applied to .aar files unless the Unity project was saved.
+
+# Version 1.2.116 - Jun 7, 2019
+## Bug Fixes
+* Android Resolver: Fixed resolution of Android dependencies without version
+ specifiers.
+* Android Resolver: Fixed Maven repo not found warning in Android Resolver.
+* Android Resolver: Fixed Android Player directory not found exception in
+ Unity 2019.x when the Android Player isn't installed.
+
+# Version 1.2.115 - May 28, 2019
+## Bug Fixes
+* Android Resolver: Fixed exception due to Unity 2019.3.0a4 removing
+ x86 from the set of supported ABIs.
+
+# Version 1.2.114 - May 27, 2019
+## New Features
+* Android Resolver: Added support for ABI stripping when using
+ mainTemplate.gradle. This only works with AARs stored in repos
+ on the local filesystem.
+
+# Version 1.2.113 - May 24, 2019
+## New Features
+* Android Resolver: If local repos are moved, the plugin will search the
+ project for matching directories in an attempt to correct the error.
+* Version Handler: Files can be now targeted to multiple build targets
+ using multiple "gvh_" asset labels.
+## Bug Fixes
+* Android Resolver: "implementation" or "compile" are now added correctly
+ to mainTemplate.gradle in Unity versions prior to 2019.
+
+# Version 1.2.112 - May 22, 2019
+## New Features
+* Android Resolver: Added option to disable addition of dependencies to
+ mainTemplate.gradle.
+ See `Assets > Play Services Resolver > Android Resolver > Settings`.
+* Android Resolver: Made paths to local maven repositories in
+ mainTemplate.gradle relative to the Unity project when a project is not
+ being exported.
+## Bug Fixes
+* Android Resolver: Fixed builds with mainTemplate.gradle integration in
+ Unity 2019.
+* Android Resolver: Changed dependency inclusion in mainTemplate.gradle to
+ use "implementation" or "compile" depending upon the version of Gradle
+ included with Unity.
+* Android Resolver: Gracefully handled exceptions if the console encoding
+ can't be modified.
+* Android Resolver: Now gracefully fails if the AndroidPlayer directory
+ can't be found.
+
+# Version 1.2.111 - May 9, 2019
+## Bug Fixes
+* Version Handler: Fixed invocation of methods with named arguments.
+* Version Handler: Fixed occasional hang when the editor is compiling
+ while activating plugins.
+
+# Version 1.2.110 - May 7, 2019
+## Bug Fixes
+* Android Resolver: Fixed inclusion of some srcaar artifacts in builds with
+ Gradle builds when using mainTemplate.gradle.
+
+# Version 1.2.109 - May 6, 2019
+## New Features:
+* Added links to documentation from menu.
+* Android Resolver: Added option to auto-resolve Android libraries on build.
+* Android Resolver: Added support for packaging specs of Android libraries.
+* Android Resolver: Pop up a window when displaying Android dependencies.
+
+## Bug Fixes
+* Android Resolver: Support for Unity 2019 Android SDK and JDK install locations
+* Android Resolver: e-enable AAR explosion if internal builds are enabled.
+* Android Resolver: Gracefully handle exceptions on file deletion.
+* Android Resolver: Fixed Android Resolver log spam on load.
+* Android Resolver: Fixed save of Android Resolver PromptBeforeAutoResolution
+ setting.
+* Android Resolver: Fixed AAR processing failure when an AAR without
+ classes.jar is found.
+* Android Resolver: Removed use of EditorUtility.DisplayProgressBar which
+ was occasionally left displayed when resolution had completed.
+* Version Handler: Fixed asset rename to disable when a disabled file exists.
+
+# Version 1.2.108 - May 3, 2019
+## Bug Fixes:
+* Version Handler: Fixed occasional hang on startup.
+
+# Version 1.2.107 - May 3, 2019
+## New Features:
+* Version Handler: Added support for enabling / disabling assets that do not
+ support the PluginImporter, based upon build target selection.
+* Android Resolver: Added support for the global specification of maven repos.
+* iOS Resolver: Added support for the global specification of Cocoapod sources.
+
+# Version 1.2.106 - May 1, 2019
+## New Features
+* iOS Resolver: Added support for development pods in Xcode project integration
+ mode.
+* iOS Resolver: Added support for source pods with resources in Xcode project
+ integration mode.
+
+# Version 1.2.105 - Apr 30, 2019
+## Bug fixes
+* Android Resolver: Fixed reference to Java tool path in logs.
+* Android and iOS Resolvers: Changed command line execution to emit a warning
+ rather than throwing an exception and failing, when it is not possible to
+ change the console input and output encoding to UTF-8.
+* Android Resolver: Added menu option and API to delete resolved libraries.
+* Android Resolver: Added menu option and API to log the repos and libraries
+ currently included in the project.
+* Android Resolver: If Plugins/Android/mainTemplate.gradle file is present and
+ Gradle is selected as the build type, resolution will simply patch the file
+ with Android dependencies specified by plugins in the project.
+
+# Version 1.2.104 - Apr 10, 2019
+## Bug Fixes
+* Android Resolver: Changed Android ABI selection method from using whitelisted
+ Unity versions to type availability. This fixes an exception on resolution
+ in some versions of Unity 2017.4.
+
+# Version 1.2.103 - Apr 2, 2019
+## Bug Fixes
+* Android Resolver: Whitelisted Unity 2017.4 and above with ARM64 support.
+* Android Resolver: Fixed Java version check to work with Java SE 12 and above.
+
+# Version 1.2.102 - Feb 13, 2019
+## Bug Fixes
+* Android Resolver: Fixed the text overflow on the Android Resolver
+ prompt before initial run to fit inside the buttons for
+ smaller screens.
+
+# Version 1.2.101 - Feb 12, 2019
+## New Features
+* Android Resolver: Prompt the user before the resolver runs for the
+ first time and allow the user to elect to disable from the prompt.
+* Android Resolver: Change popup warning when resolver is disabled
+ to be a console warning.
+
+# Version 1.2.100 - Jan 25, 2019
+## Bug Fixes
+* Android Resolver: Fixed AAR processing sometimes failing on Windows
+ due to file permissions.
+
+# Version 1.2.99 - Jan 23, 2019
+## Bug Fixes
+* Android Resolver: Improved performance of project property polling.
+* Version Handler: Fixed callback of VersionHandler.UpdateCompleteMethods
+ when the update process is complete.
+
+# Version 1.2.98 - Jan 9, 2019
+## New Features
+* iOS Resolver: Pod declaration properties can now be set via XML pod
+ references. For example, this can enable pods for a subset of build
+ configurations.
+## Bug Fixes
+* iOS Resolver: Fixed incremental builds after local pods support caused
+ regression in 1.2.96.
+
+# Version 1.2.97 - Dec 17, 2018
+## Bug Fixes
+* Android Resolver: Reduced memory allocation for logic that monitors build
+ settings when auto-resolution is enabled. If auto-resolution is disabled,
+ almost all build settings are no longer polled for changes.
+
+# Version 1.2.96 - Dec 17, 2018
+## Bug Fixes
+* Android Resolver: Fixed repacking of AARs to exclude .meta files.
+* Android Resolver: Only perform auto-resolution on the first scene while
+ building.
+* Android Resolver: Fixed parsing of version ranges that include whitespace.
+* iOS Resolver: Added support for local development pods.
+* Version Handler: Fixed Version Handler failing to rename some files.
+
+# Version 1.2.95 - Oct 23, 2018
+## Bug Fixes:
+* Android Resolver: Fixed auto-resolution running in a loop in some scenarios.
+
+# Version 1.2.94 - Oct 22, 2018
+## Bug Fixes
+* iOS Resolver: Added support for PODS_TARGET_SRCROOT in source Cocoapods.
+
+# Version 1.2.93 - Oct 22, 2018
+## Bug Fixes
+* Android Resolver: Fixed removal of Android libraries on auto-resolution when
+ `*Dependencies.xml` files are deleted.
+
+# Version 1.2.92 - Oct 2, 2018
+## Bug Fixes
+* Android Resolver: Worked around auto-resolution hang on Windows if
+ resolution starts before compilation is finished.
+
+# Version 1.2.91 - Sep 27, 2018
+## Bug Fixes
+* Android Resolver: Fixed Android Resolution when the selected build target
+ isn't Android.
+* Added C# assembly symbols the plugin to simplify debugging bug reports.
+
+# Version 1.2.90 - Sep 21, 2018
+## Bug Fixes
+* Android Resolver: Fixed transitive dependency selection of version locked
+ packages.
+
+# Version 1.2.89 - Aug 31, 2018
+## Bug Fixes
+* Fixed FileLoadException in ResolveUnityEditoriOSXcodeExtension an assembly
+ can't be loaded.
+
+# Version 1.2.88 - Aug 29, 2018
+## Changed
+* Improved reporting of resolution attempts and conflicts found in the Android
+ Resolver.
+## Bug Fixes
+* iOS Resolver now correctly handles sample code in CocoaPods. Previously it
+ would add all sample code to the project when using project level
+ integration.
+* Android Resolver now correctly handles Gradle conflict resolution when the
+ resolution results in a package that is compatible with all requested
+ dependencies.
+
+# Version 1.2.87 - Aug 23, 2018
+## Bug Fixes
+* Fixed Android Resolver "Processing AARs" dialog getting stuck in Unity 5.6.
+
+# Version 1.2.86 - Aug 22, 2018
+## Bug Fixes
+* Fixed Android Resolver exception in OnPostProcessScene() when the Android
+ platform isn't selected.
+
+# Version 1.2.85 - Aug 17, 2018
+## Changes
+* Added support for synchronous resolution in the Android Resolver.
+ PlayServicesResolver.ResolveSync() now performs resolution synchronously.
+* Auto-resolution in the Android Resolver now results in synchronous resolution
+ of Android dependencies before the Android application build starts via
+ UnityEditor.Callbacks.PostProcessSceneAttribute.
+
+# Version 1.2.84 - Aug 16, 2018
+## Bug Fixes
+* Fixed Android Resolver crash when the AndroidResolverDependencies.xml
+ file can't be written.
+* Reduced log spam when a conflicting Android library is pinned to a
+ specific version.
+
+# Version 1.2.83 - Aug 15, 2018
+## Bug Fixes
+* Fixed Android Resolver failures due to an in-accessible AAR / JAR explode
+ cache file. If the cache can't be read / written the resolver now continues
+ with reduced performance following recompilation / DLL reloads.
+* Fixed incorrect version number in plugin manifest on install.
+ This was a minor issue since the version handler rewrote the metadata
+ after installation.
+
+# Version 1.2.82 - Aug 14, 2018
+## Changed
+* Added support for alphanumeric versions in the Android Resolver.
+
+## Bug Fixes
+* Fixed Android Resolver selection of latest duplicated library.
+* Fixed Android Resolver conflict resolution when version locked and non-version
+ locked dependencies are specified.
+* Fixed Android Resolver conflict resolution when non-existent artifacts are
+ referenced.
+
+# Version 1.2.81 - Aug 9, 2018
+## Bug Fixes
+* Fixed editor error that would occur when when
+ `PlayerSettings.Android.targetArchitectures` was set to
+ `AndroidArchitecture.All`.
+
+# Version 1.2.80 - Jul 24, 2018
+## Bug Fixes
+* Fixed project level settings incorrectly falling back to system wide settings
+ when default property values were set.
+
+# Version 1.2.79 - Jul 23, 2018
+## Bug Fixes
+* Fixed AndroidManifest.xml patching on Android Resolver load in Unity 2018.x.
+
+# Version 1.2.78 - Jul 19, 2018
+## Changed
+* Added support for overriding conflicting dependencies.
+
+# Version 1.2.77 - Jul 19, 2018
+## Changed
+* Android Resolver now supports Unity's 2018 ABI filter (i.e arm64-v8a).
+* Reduced Android Resolver build option polling frequency.
+* Disabled Android Resolver auto-resolution in batch mode. Users now need
+ to explicitly kick off resolution through the API.
+* All Android Resolver and Version Handler dialogs are now disabled in batch
+ mode.
+* Verbose logging for all plugins is now enabled by default in batch mode.
+* Version Handler bootstrapper has been improved to no longer call
+ UpdateComplete multiple times. However, since Unity can still reload the
+ app domain after plugins have been enabled, users still need to store their
+ plugin state to persistent storage to handle reloads.
+
+## Bug Fixes
+* Android Resolver no longer incorrectly adds MANIFEST.MF files to AARs.
+* Android Resolver auto-resolution jobs are now unscheduled when an explicit
+ resolve job is started.
+
+# Version 1.2.76 - Jul 16, 2018
+## Bug Fixes
+* Fixed variable replacement in AndroidManifest.xml files in the Android
+ Resolver.
+ Version 1.2.75 introduced a regression which caused all variable replacement
+ to replace the *entire* property value rather than the component of the
+ property that referenced a variable. For example,
+ given "applicationId = com.my.app", "${applicationId}.foo" would be
+ incorrectly expanded as "com.my.app" rather than "com.my.app.foo". This
+ resulted in numerous issues for Android builds where content provider
+ initialization would fail and services may not start.
+
+## Changed
+* Gradle prebuild experimental feature has been removed from the Android
+ Resolver. The feature has been broken for some time and added around 8MB
+ to the plugin size.
+* Added better support for execution of plugin components in batch mode.
+ In batch mode UnityEditor.update is sometimes never called - like when a
+ single method is executed - so the new job scheduler will execute all jobs
+ synchronously from the main thread.
+
+# Version 1.2.75 - Jun 20, 2018
+## New Features
+* Android Resolver now monitors the Android SDK path when
+ auto-resolution is enabled and triggers resolution when the path is
+ modified.
+
+## Changed
+* Android auto-resolution is now delayed by 3 seconds when the following build
+ settings are changed:
+ - Target ABI.
+ - Gradle build vs. internal build.
+ - Project export.
+* Added a progress bar display when AARs are being processed during Android
+ resolution.
+
+## Bug Fixes
+* Fixed incorrect Android package version selection when a mix of
+ version-locked and non-version-locked packages are specified.
+* Fixed non-deterministic Android package version selection to select
+ the highest version of a specified package rather than the last
+ package specification passed to the Gradle resolution script.
+
+# Version 1.2.74 - Jun 19, 2018
+## New Features
+* Added workaround for broken AndroidManifest.xml variable replacement in
+ Unity 2018.x. By default ${applicationId} variables will be replaced by
+ the bundle ID in the Plugins/Android/AndroidManifest.xml file. The
+ behavior can be disabled via the Android Resolver settings menu.
+
+# Version 1.2.73 - May 30, 2018
+## Bug Fixes
+* Fixed spurious warning message about missing Android plugins directory on
+ Windows.
+
+# Version 1.2.72 - May 23, 2018
+## Bug Fixes
+* Fixed spurious warning message about missing Android plugins directory.
+
+# Version 1.2.71 - May 10, 2018
+## Bug Fixes
+* Fixed resolution of Android dependencies when the `Assets/Plugins/Android`
+ directory is named in a different case e.g `Assets/plugins/Android`.
+
+# Version 1.2.70 - May 7, 2018
+## Bug Fixes
+* Fixed bitcode flag being ignored for iOS pods.
+
+# Version 1.2.69 - May 7, 2018
+## Bug Fixes
+* Fixed escaping of local repository paths in Android Resolver.
+
+# Version 1.2.68 - May 3, 2018
+## Changes
+* Added support for granular builds of Google Play Services.
+
+# Version 1.2.67 - May 1, 2018
+## Changes
+* Improved support for iOS source-only pods in Unity 5.5 and below.
+
+# Version 1.2.66 - April 27, 2018
+## Bug Fixes
+* Fixed Version Handler renaming of Linux libraries with hyphens in filenames.
+ Previously, libraries named Foo-1.2.3.so were not being renamed to
+ libFoo-1.2.3.so on Linux which could break native library loading on some
+ versions of Unity.
+
+# Version 1.2.65 - April 26, 2018
+## Bug Fixes
+* Fix CocoaPods casing in logs and comments.
+
+# Version 1.2.64 - Mar 16, 2018
+## Bug Fixes
+* Fixed bug in download_artifacts.gradle (used by Android Resolver) which
+ reported a failure if required artifacts already exist.
+
+# Version 1.2.63 - Mar 15, 2018
+## Bug Fixes
+* Fixed iOS Resolver include search paths taking precedence over system headers
+ when using project level resolution.
+* Fixed iOS Resolver includes relative to library root, when using project level
+ resolution.
+
+# Version 1.2.62 - Mar 12, 2018
+## Changes
+* Improved error reporting when a file can't be moved to trash by the
+ Version Handler.
+## Bug Fixes
+* Fixed Android Resolver throwing NullReferenceException when the Android SDK
+ path isn't set.
+* Fixed Version Handler renaming files with underscores if the
+ "Rename to Canonical Filenames" setting is enabled.
+
+# Version 1.2.61 - Jan 22, 2018
+## Bug Fixes
+* Fixed Android Resolver reporting non-existent conflicting dependencies when
+ Gradle build system is enabled.
+
+# Version 1.2.60 - Jan 12, 2018
+## Changes
+* Added support for Maven / Ivy version specifications for Android packages.
+* Added support for Android SNAPSHOT packages.
+
+## Bug Fixes
+* Fixed Openjdk version check.
+* Fixed non-deterministic Android package resolution when two packages contain
+ an artifact with the same name.
+
+# Version 1.2.59 - Oct 19, 2017
+## Bug Fixes
+* Fixed execution of Android Gradle resolution script when it's located
+ in a path with whitespace.
+
+# Version 1.2.58 - Oct 19, 2017
+## Changes
+* Removed legacy resolution method from Android Resolver.
+ It is now only possible to use the Gradle or Gradle prebuild resolution
+ methods.
+
+# Version 1.2.57 - Oct 18, 2017
+## Bug Fixes
+* Updated Gradle wrapper to 4.2.1 to fix issues using Gradle with the
+ latest Openjdk.
+* Android Gradle resolution now also uses gradle.properties to pass
+ parameters to Gradle in an attempt to workaround problems with
+ command line argument parsing on Windows 10.
+
+# Version 1.2.56 - Oct 12, 2017
+## Bug Fixes
+* Fixed Gradle artifact download with non-version locked artifacts.
+* Changed iOS resolver to only load dependencies at build time.
+
+# Version 1.2.55 - Oct 4, 2017
+## Bug Fixes
+* Force Android Resolution when the "Install Android Packages" setting changes.
+
+# Version 1.2.54 - Oct 4, 2017
+## Bug Fixes
+* Fixed execution of command line tools on Windows when the path to the tool
+ contains a single quote (apostrophe). In this case we fallback to executing
+ the tool via the system shell.
+
+# Version 1.2.53 - Oct 2, 2017
+## New Features
+* Changed Android Resolver "resolution complete" dialog so that it now displays
+ failures.
+* Android Resolver now detects conflicting libraries that it does not manage
+ warning the user if they're newer than the managed libraries and prompting
+ the user to clean them up if they're older or at the same version.
+
+## Bug Fixes
+* Improved Android Resolver auto-resolution speed.
+* Fixed bug in the Gradle Android Resolver which would result in resolution
+ succeeding when some dependencies are not found.
+
+# Version 1.2.52 - Sep 25, 2017
+## New Features
+* Changed Android Resolver's Gradle resolution to resolve conflicting
+ dependencies across Google Play services and Android Support library packages.
+
+# Version 1.2.51 - Sep 20, 2017
+## Changes
+* Changed iOS Resolver to execute the CocoaPods "pod" command via the shell
+ by default. Some developers customize their shell environment to use
+ custom ssh certs to access internal git repositories that host pods so
+ executing "pod" via the shell will work for these scenarios.
+ The drawback of executing "pod" via the shell could potentially cause
+ users problems if they break their shell environment. Though users who
+ customize their shell environments will be able to resolve these issues.
+
+# Version 1.2.50 - Sep 18, 2017
+## New Features
+* Added option to disable the Gradle daemon in the Android Resolver.
+ This daemon is now disabled by default as some users are getting into a state
+ where multiple daemon instances are being spawned when changing dependencies
+ which eventually results in Android resolution failing until all daemon
+ processes are manually killed.
+
+## Bug Fixes
+* Android resolution is now always executed if the user declines the update
+ of their Android SDK. This ensure users can continue to use out of date
+ Android SDK packages if they desire.
+
+# Version 1.2.49 - Sep 18, 2017
+## Bug Fixes
+* Removed modulemap parsing in iOS Resolver.
+ The framework *.modulemap did not need to be parsed by the iOS Resolver
+ when injecting Cocoapods into a Xcode project. Simply adding a modular
+ framework to a Xcode project results in Xcode's Clang parsing the associated
+ modulemap and injecting any compile and link flags into the build process.
+
+# Version 1.2.48 - Sep 12, 2017
+## New Features
+* Changed settings to be per-project by default.
+
+## Bug Fixes
+* Added Google maven repository to fix GradlePrebuild resolution with Google
+ components.
+* Fixed Android Resolution failure with spaces in paths.
+
+# Version 1.2.47 - Aug 29, 2017
+## New Features
+* Android and iOS dependencies can now be specified using *Dependencies.xml
+ files. This is now the preferred method for registering dependencies,
+ we may remove the API for dependency addition in future.
+* Added "Reset to Defaults" button to each settings dialog to restore default
+ settings.
+* Android Resolver now validates the configured JDK is new enough to build
+ recently released Android libraries.
+## Bug Fixes
+* Fixed a bug that caused dependencies with the "LATEST" version specification
+ to be ignored when using the Gradle mode of the Android Resolver.
+* Fixed a race condition when running Android Resolution.
+* Fixed Android Resolver logging if a PlayServicesSupport instance is created
+ with no logging enabled before the Android Resolver is initialized.
+* Fixed iOS resolver dialog in Unity 4.
+* Fixed iOS Cocoapod Xcode project integration in Unity 4.
+
+# Version 1.2.46 - Aug 22, 2017
+## Bug Fixes
+* GradlePrebuild Android resolver on Windows now correctly locates dependent
+ data files.
+
+# Version 1.2.45 - Aug 22, 2017
+## Bug Fixes
+* Improved Android package auto-resolution and fixed clean up of stale
+ dependencies when using Gradle dependency resolution.
+
+# Version 1.2.44 - Aug 21, 2017
+## Bug Fixes
+* Enabled autoresolution for Gradle Prebuild.
+* Made the command line dialog windows have selectable text.
+* Fixed incorrect "Android Settings" dialog disabled groups.
+* Updated PlayServicesResolver android platform detection to use the package
+ manager instead of the 'android' tool.
+* UnityCompat reflection methods 'GetAndroidPlatform' and
+ 'GetAndroidBuildToolsVersion' are now Obsolete due to dependence on the
+ obsolete 'android' build tool.
+
+# Version 1.2.43 - Aug 18, 2017
+## Bug Fixes
+* Fixed Gradle resolution in the Android Resolver when running
+ PlayServicesResolver.Resolve() in parallel or spawning multiple
+ resolutions before the previous resolve completed.
+
+# Version 1.2.42 - Aug 17, 2017
+## Bug Fixes
+* Fixed Xcode project level settings not being applied by IOS Resolver when
+ Xcode project pod integration is enabled.
+
+# Version 1.2.41 - Aug 15, 2017
+## Bug Fixes
+* IOS Resolver's Xcode workspace pod integration is now disabled when Unity
+ Cloud Build is detected. Unity Cloud Build does not follow the same build
+ process as the Unity editor and fails to open the generated xcworkspace at
+ this time.
+
+# Version 1.2.40 - Aug 15, 2017
+## Bug Fixes
+* Moved Android Resolver Gradle Prebuild scripts into Google.JarResolver.dll.
+ They are now extracted from the DLL when required.
+* AARs / JARs are now cleaned up when switching the Android resolution
+ strategy.
+
+# Version 1.2.39 - Aug 10, 2017
+## New Features
+* Android Resolver now supports resolution with Gradle. This enables support
+ for non-local artifacts.
+## Bug Fixes
+* Android Resolver's Gradle Prebuild now uses Android build tools to determine
+ the Android platform tools version rather than relying upon internal Unity
+ APIs.
+* Android Resolver's Gradle Prebuild now correctly strips binaries that are
+ not required for the target ABI.
+
+# Version 1.2.38 - Aug 7, 2017
+## Bug Fixes
+* Fixed an issue in VersionHandler where disabled targets are ignored if
+ the "Any Platform" flag is set on a plugin DLL.
+
+# Version 1.2.37 - Aug 3, 2017
+## New Features
+* Exposed GooglePlayServices.PlayServicesResolver.Resolve() so that it's
+ possible for a script to be notified when AAR / Jar resolution is complete.
+ This makes it easier to setup a project to build from the command line.
+
+# Version 1.2.36 - Aug 3, 2017
+## New Features
+* VersionHandler.UpdateCompleteMethods allows a user to provide a list of
+ methods to be called when VersionHandlerImpl has completed an update.
+ This makes it easier to import a plugin and wait for VersionHandler to
+ execute prior executing a build.
+
+# Version 1.2.35 - Jul 28, 2017
+## New Features
+* VersionHandler will now rename Linux libraries so they can target Unity
+ versions that require different file naming. Libraries need to be labelled
+ gvh_linuxlibname-${basename} in order to be considered for renaming.
+ e.g gvh\_linuxlibname-MyLib will be named MyLib.so in Unity 5.5 and below and
+ libMyLib.so in Unity 5.6 and above.
+
+# Version 1.2.34 - Jul 28, 2017
+## Bug Fixes
+* Made VersionHandler bootstrap module more robust when calling static
+ methods before the implementation DLL is loaded.
+
+# Version 1.2.33 - Jul 27, 2017
+## New Features
+* Added a bootstrap module for VersionHandler so the implementation
+ of the VersionHandler module can be versioned without resulting in
+ a compile error when imported at different versions across multiple
+ plugins.
+
+# Version 1.2.32 - Jul 20, 2017
+## New Features
+* Added support for build target selection based upon .NET framework
+ version in the VersionHandler.
+ When applying either gvh\_dotnet-3.5 or gvh\_dotnet-4.5 labels to
+ assets, the VersionHandler will only enable the asset for the
+ specified set of build targets when the matching .NET framework version
+ is selected in Unity 2017's project settings. This allows assets
+ to be provided in a plugin that need to differ based upon .NET version.
+
+# Version 1.2.31 - Jul 5, 2017
+## Bug Fixes
+* Force expansion of AARs with native components when using Unity 2017
+ with the internal build system. In contrast to Unity 5.x, Unity 2017's
+ internal build system does not include native libraries included in AARs.
+ Forcing expansion of AARs with native components generates an
+ Ant / Eclipse project for each AAR which is correctly included by Unity
+ 2017's internal build system.
+
+# Version 1.2.30 - Jul 5, 2017
+## Bug Fixes
+* Fixed Cocoapods being installed when the build target isn't iOS.
+* Added support for malformed AARs with missing classes.jar.
+
+# Version 1.2.29 - Jun 16, 2017
+## New Features
+* Added support for the Android sdkmanager tool.
+
+# Version 1.2.28 - Jun 8, 2017
+## Bug Fixes
+* Fixed non-shell command line execution (regression from
+ Cocoapod installation patch).
+
+# Version 1.2.27 - Jun 7, 2017
+## Bug Fixes
+* Added support for stdout / stderr redirection when executing
+ commands in shell mode.
+ This fixes CocoaPod tool installation when shell mode is
+ enabled.
+* Fixed incremental builds when additional sources are specified
+ in the Podfile.
+
+# Version 1.2.26 - Jun 7, 2017
+## Bug Fixes
+* Fixed a crash when importing Version Handler into Unity 4.7.x.
+
+# Version 1.2.25 - Jun 7, 2017
+## Bug Fixes
+* Fixed an issue in the Jar Resolver which incorrectly notified
+ event handlers of bundle ID changes when the currently selected
+ (not active) build target changed in Unity 5.6 and above.
+
+# Version 1.2.24 - Jun 6, 2017
+## New Features
+* Added option to control file renaming in Version Handler settings.
+ Disabling file renaming (default option) significantly increases
+ the speed of file version management operations with the downside
+ that any files that are referenced directly by canonical filename
+ rather than asset ID will no longer be valid.
+* Improved logging in the Version Handler.
+## Bug Fixes
+* Fixed an issue in the Version Handler which caused it to not
+ re-enable plugins when re-importing a custom package with disabled
+ version managed files.
+
+# Version 1.2.23 - May 26, 2017
+## Bug Fixes
+* Fixed a bug with gradle prebuild resolver on windows.
+
+# Version 1.2.22 - May 19, 2017
+## Bug Fixes
+* Fixed a bug in the iOS resolver with incremental builds.
+* Fixed misdetection of Cocoapods support with Unity beta 5.6.
+
+# Version 1.2.21 - May 8, 2017
+## Bug Fixes
+* Fix for https://github.com/googlesamples/unity-jar-resolver/issues/48
+ Android dependency version number parsing when "-alpha" (etc.) are
+ included in dependency (AAR / JAR) versions.
+
+# Version 1.2.20 - May 8, 2017
+## Bug Fixes
+* Attempted to fix
+ https://github.com/googlesamples/unity-jar-resolver/issues/48
+ where a NullReferenceException could occur if a target file does not
+ have a valid version string.
+
+# Version 1.2.19 - May 4, 2017
+## Bug Fixes
+* Fixed Jar Resolver exploding and deleting AAR files it isn't managing.
+
+# Version 1.2.18 - May 4, 2017
+## New Features
+* Added support for preserving Unity pods such as when GVR is enabled.
+
+# Version 1.2.17 - Apr 20, 2017
+## Bug Fixes
+* Fixed auto-resolution when an Android application ID is modified.
+
+# Version 1.2.16 - Apr 17, 2017
+## Bug Fixes
+* Fixed Unity version number parsing on machines with a locale that uses
+ "," for decimal points.
+* Fixed null reference exception if JDK path isn't set.
+
+# Version 1.2.15 - Mar 17, 2017
+## New Features
+* Added warning when the Jar Resolver's background resolution is disabled.
+## Bug Fixes
+* Fixed support of AARs with native libraries when using Gradle.
+* Fixed extra repository paths when resolving dependencies.
+
+# Version 1.2.14 - Mar 7, 2017
+## New Features
+* Added experimental Android resolution using Gradle.
+ This alternative resolver supports proguard stripping with Unity's
+ internal build system.
+* Added Android support for single ABI builds when using AARs include
+ native libraries.
+* Disabled Android resolution on changes to all .cs and .js files.
+ File patterns that are monitored for auto-resolution can be added
+ using PlayServicesResolver.AddAutoResolutionFilePatterns().
+* Added tracking of resolved AARs and JARs so they can be cleaned up
+ if they're no longer referenced by a project.
+* Added persistence of AAR / JAR version replacement for each Unity
+ session.
+* Added settings dialog to the iOS resolver.
+* Integrated Cocoapod tool installation in the iOS resolver.
+* Added option to run pod tool via the shell.
+## Bug Fixes
+* Fixed build of some source Cocoapods (e.g Protobuf).
+* VersionHandler no longer prompts to delete obsolete manifests.
+* iOS resolver handles Cocoapod installation when using Ruby < 2.2.2.
+* Added workaround for package version selection when including
+ Google Play Services on Android.
+* Fixed support for pods that reference static libraries.
+* Fixed support for resource-only pods.
+
+# Version 1.2.12 - Feb 14, 2017
+## Bug Fixes
+* Fixed re-explosion of AARs when the bundle ID is modified.
+
+# Version 1.2.11 - Jan 30, 2017
+## New Features
+* Added support for Android Studio builds.
+* Added support for native (C/C++) shared libraries in AARs.
+
+# Version 1.2.10 - Jan 11, 2017
+## Bug Fixes
+* Fixed SDK manager path retrieval.
+* Also, report stderr when it's not possible to run the "pod" tool.
+* Handle exceptions thrown by Unity.Cecil on asset rename
+* Fixed IOSResolver to handle PlayerSettings.iOS.targetOSVersionString
+
+# Version 1.2.9 - Dec 7, 2016
+## Bug Fixes
+* Improved error reporting when "pod repo update" fails.
+* Added detection of xml format xcode projects generated by old Cocoapods
+ installations.
+
+# Version 1.2.8 - Dec 6, 2016
+## Bug Fixes
+* Increased speed of JarResolver resolution.
+* Fixed JarResolver caches getting out of sync with requested dependencies
+ by removing the caches.
+* Fixed JarResolver explode cache always being rewritten even when no
+ dependencies change.
+
+# Version 1.2.7 - Dec 2, 2016
+## Bug Fixes
+* Fixed VersionHandler build errors with Unity 5.5, due to the constantly
+ changing BuildTarget enum.
+* Added support for Unity configured JDK Path rather than requiring
+ JAVA_HOME to be set in the Jar Resolver.
+
+# Version 1.2.6 - Nov 15, 2016
+## Bug Fixes
+* Fixed IOSResolver errors when iOS support is not installed.
+* Added fallback to "pod" executable search which queries the Ruby Gems
+ package manager for the binary install location.
+
+# Version 1.2.5 - Nov 3, 2016
+## Bug Fixes
+* Added crude support for source only Cocoapods to the IOSResolver.
+
+# Version 1.2.4 - Oct 27, 2016
+## Bug Fixes
+* Automated resolution of out of date pod repositories.
+
+# Version 1.2.3 - Oct 25, 2016
+## Bug Fixes
+* Fixed exception when reporting conflicting dependencies.
+
+# Version 1.2.2 - Oct 17, 2016
+## Bug Fixes
+* Fixed issue working with Unity 5.5
+* Fixed issue with PlayServicesResolver corrupting other iOS dependencies.
+* Updated build script to use Unity distributed tools for building.
+
+# Version 1.2.1 - Jul 25, 2016
+## Bug Fixes
+* Removed 1.2 Resolver and hardcoded whitelist of AARs to expand.
+* Improved error reporting when the "jar" executable can't be found.
+* Removed the need to set JAVA_HOME if "jar" is in the user's path.
+* Fixed spurious copying of partially matching AARs.
+* Changed resolver to only copy / expand when source AARs change.
+* Auto-resolution of dependencies is now performed when the Android
+ build target is selected.
+
+## New Features
+* Expand AARs that contain manifests with variable expansion like
+ ${applicationId}.
+* Added optional logging in the JarResolverLib module.
+* Integration with the Android SDK manager for dependencies that
+ declare required Android SDK packages.
+
+# Version 1.2.0 - May 11 2016
+## Bug Fixes
+* Handles resolving dependencies when the artifacts are split across 2 repos.
+* #4 Misdetecting version for versions like 1.2-alpha. These are now string
+ compared if alphanumeric
+* Removed resolver creation via reflection since it did not work all the time.
+ Now a resolver needs to be loaded externally (which is existing behavior).
+
+## New Features
+* Expose PlayServicesResolver properties to allow for script access.
+* Explodes firebase-common and firebase-measurement aar files to support
+ ${applicationId} substitution.
+
+# Version 1.1.1 - 25 Feb 2016
+## Bug Fixes
+* #1 Spaces in project path not handled when exploding Aar file.
+* #2 Script compilation error: TypeLoadException.
+
+# Version 1.1.0 - 5 Feb 2016
+## New Features
+* Adds friendly alert when JAVA_HOME is not set on Windows platforms.
+* Adds flag for disabling background resolution.
+* Expands play-services-measurement and replaces ${applicationId} with the
+ bundle Id.
+
+ ## Bug Fixes
+* Fixes infinite loop of resolution triggered by resolution.
diff --git a/Assets/ExternalDependencyManager/Editor/CHANGELOG.md.meta b/Assets/ExternalDependencyManager/Editor/CHANGELOG.md.meta
new file mode 100644
index 0000000..196e5a5
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/CHANGELOG.md.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: aba4ee01c6d145f7bf2d944d892f709a
+labels:
+- gvh
+- gvh_version-1.2.186
+- gvhp_exportpath-ExternalDependencyManager/Editor/CHANGELOG.md
+timeCreated: 1584567712
+licenseType: Store
+TextScriptImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll b/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll
new file mode 100644
index 0000000..12c150e
Binary files /dev/null and b/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll differ
diff --git a/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.meta b/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.meta
new file mode 100644
index 0000000..b43088d
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.meta
@@ -0,0 +1,36 @@
+fileFormatVersion: 2
+guid: f7632a50b10045458c53a5ddf7b6d238
+labels:
+- gvh
+- gvh_version-1.2.186
+- gvhp_exportpath-ExternalDependencyManager/Editor/Google.VersionHandler.dll
+- gvhp_targets-editor
+timeCreated: 1480838400
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ DefaultValueInitialized: true
+ - first:
+ Windows Store Apps: WindowsStoreApps
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.pdb.meta b/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.pdb.meta
index 519103b..d784045 100644
--- a/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.pdb.meta
+++ b/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.pdb.meta
@@ -3,7 +3,6 @@ guid: 57f5a82a79ab4b098f09326c8f3c73a6
labels:
- gvh
- gvh_version-1.2.186
-- gvh_version-10.4.2
- gvhp_exportpath-ExternalDependencyManager/Editor/Google.VersionHandler.pdb
timeCreated: 1538009133
licenseType: Store
diff --git a/Assets/ExternalDependencyManager/Editor/LICENSE b/Assets/ExternalDependencyManager/Editor/LICENSE
new file mode 100644
index 0000000..6258cc4
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/LICENSE
@@ -0,0 +1,245 @@
+Copyright (C) 2014 Google Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+====================================================================================================
+This package uses MiniJSON
+
+Copyright (c) 2013 Calvin Rien
+
+Based on the JSON parser by Patrick van Bergen
+http://techblog.procurios.nl/k/618/news/view/14605/14863/How-do-I-write-my-own-parser-for-JSON.html
+
+Simplified it so that it doesn't throw exceptions
+and can be used in Unity iPhone with maximum code stripping.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/Assets/ExternalDependencyManager/Editor/LICENSE.meta b/Assets/ExternalDependencyManager/Editor/LICENSE.meta
new file mode 100644
index 0000000..7a8fa4b
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/LICENSE.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: ae8b2bc8d1ac4ad48f0ab2b2e7ac75fb
+labels:
+- gvh
+- gvh_version-1.2.186
+- gvhp_exportpath-ExternalDependencyManager/Editor/LICENSE
+timeCreated: 1584567712
+licenseType: Store
+TextScriptImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ExternalDependencyManager/Editor/README.md b/Assets/ExternalDependencyManager/Editor/README.md
new file mode 100644
index 0000000..a9aafe9
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/README.md
@@ -0,0 +1,903 @@
+# External Dependency Manager for Unity
+
+[](https://openupm.com/packages/com.google.external-dependency-manager/)
+[](https://openupm.com/packages/com.google.external-dependency-manager/)
+
+## Overview
+
+The External Dependency Manager for Unity (EDM4U) (formerly Play Services
+Resolver/Jar Resolver) is intended to be used by any Unity package or user that
+requires:
+
+* Android specific libraries (e.g
+ [AARs](https://developer.android.com/studio/projects/android-library.html))
+
+* iOS [CocoaPods](https://cocoapods.org/)
+
+* Version management of transitive dependencies
+
+* Management of Package Manager (PM) Registries
+
+If you want to add and use iOS/Android dependencies directly in your project,
+then you should to install EDM4U in your project.
+
+If you are a package user and the plugin you are using depends on EDM4U, *and*
+the package does not include EDM4U as a package dependency already, then you
+should to install EDM4U in your project.
+
+If you are a UPM package maintainer and your package requires EDM4U, then you
+should add EDM4U as a
+[package dependency](https://docs.unity3d.com/2019.3/Documentation/Manual/upm-dependencies.html)
+in your package manifest (`package.json`):
+
+```json
+{
+ "dependencies": {
+ "com.google.external-dependency-manager": "1.2.178"
+ }
+}
+```
+
+You should still install EDM4U to test out the package during development.
+
+If you are a legacy `.unitypackage` package maintainer and your package requires
+EDM4U, please ask the user to install EDM4U separately. You should install EDM4U
+to test out the package during development.
+
+Updated releases are available on
+[GitHub](https://github.com/googlesamples/unity-jar-resolver)
+
+## Requirements
+
+The *Android Resolver* and *iOS Resolver* components of the plugin only work
+with Unity version 4.6.8 or higher.
+
+The *Version Handler* component only works with Unity 5.x or higher as it
+depends upon the `PluginImporter` UnityEditor API.
+
+The *Package Manager Resolver* component only works with Unity 2018.4 or above,
+when [scoped registry](https://docs.unity3d.com/Manual/upm-scoped.html) support
+was added to the Package Manager.
+
+## Getting Started
+
+Check out [troubleshooting](troubleshooting-faq.md) if you need help.
+
+### Install via OpenUPM
+
+EDM4U is available on
+[OpenUPM](https://openupm.com/packages/com.google.external-dependency-manager/):
+
+```shell
+openupm add com.google.external-dependency-manager
+```
+
+### Install via git URL
+1. Open Package Manager
+2. Click on the + icon on the top left corner of the "Package Manager" screen
+3. Click on "Install package from git url..."
+4. Paste: https://github.com/googlesamples/unity-jar-resolver.git?path=upm
+
+### Install via Google APIs for Unity
+
+EDM4U is available both in UPM and legacy `.unitypackage` formats on
+[Google APIs for Unity](https://developers.google.com/unity/archive#external_dependency_manager_for_unity).
+
+You may install the UPM version (.tgz) as a
+[local UPM package](https://docs.unity3d.com/Manual/upm-ui-local.html).
+
+You can also install EDM4U in your project as a `.unitypackage`. This is not
+recommended due to potential conflicts.
+
+### Conflict Resolution
+
+For historical reasons, a package maintainer may choose to embed EDM4U in their
+package for ease of installation. This will create a conflict when you try to
+install EDM4U with the steps above, or with another package with embedded EDM4U.
+If your project imported a `.unitypackage` that has a copy of EDM4U embedded in
+it, you may safely delete it from your Assets folder. If your project depends on
+another UPM package with EDM4U, please reach out to the package maintainer and
+ask them to replace it with a dependency to this package. In the meantime, you
+can workaround the issue by copying the package to your Packages folder (to
+create an
+[embedded package](https://docs.unity3d.com/Manual/upm-concepts.html#Embedded))
+and perform the steps yourself to avoid a dependency conflict.
+
+### Config file
+
+To start adding dependencies to your project, copy and rename the
+[SampleDependencies.xml](https://github.com/googlesamples/unity-jar-resolver/blob/master/sample/Assets/ExternalDependencyManager/Editor/SampleDependencies.xml)
+file into your plugin and add the dependencies your project requires.
+
+The XML file needs to be under an `Editor` directory and match the name
+`*Dependencies.xml`. For example, `MyPlugin/Editor/MyPluginDependencies.xml`.
+
+## Usages
+
+### Android Resolver
+
+The Android Resolver copies specified dependencies from local or remote Maven
+repositories into the Unity project when a user selects Android as the build
+target in the Unity editor.
+
+For example, to add the Google Play Games library
+(`com.google.android.gms:play-services-games` package) at version `9.8.0` to the
+set of a plugin's Android dependencies:
+
+```xml
+
+
+
+
+ extra-google-m2repository
+
+
+
+
+```
+
+The version specification (last component) supports:
+
+* Specific versions e.g `9.8.0`
+
+* Partial matches e.g `9.8.+` would match 9.8.0, 9.8.1 etc. choosing the most
+ recent version
+
+* Latest version using `LATEST` or `+`. We do *not* recommend using this
+ unless you're 100% sure the library you depend upon will not break your
+ Unity plugin in future
+
+The above example specifies the dependency as a component of the Android SDK
+manager such that the Android SDK manager will be executed to install the
+package if it's not found. If your Android dependency is located on Maven
+central it's possible to specify the package simply using the `androidPackage`
+element:
+
+```xml
+
+
+
+
+
+```
+
+#### Auto-resolution
+
+By default the Android Resolver automatically monitors the dependencies you have
+specified and the `Plugins/Android` folder of your Unity project. The resolution
+process runs when the specified dependencies are not present in your project.
+
+The *auto-resolution* process can be disabled via the `Assets > External
+Dependency Manager > Android Resolver > Settings` menu.
+
+Manual resolution can be performed using the following menu options:
+
+* `Assets > External Dependency Manager > Android Resolver > Resolve`
+
+* `Assets > External Dependency Manager > Android Resolver > Force Resolve`
+
+#### Deleting libraries
+
+Resolved packages are tracked via asset labels by the Android Resolver. They can
+easily be deleted using the `Assets > External Dependency Manager > Android
+Resolver > Delete Resolved Libraries` menu item.
+
+#### Android Manifest Variable Processing
+
+Some AAR files (for example play-services-measurement) contain variables that
+are processed by the Android Gradle plugin. Unfortunately, Unity does not
+perform the same processing when using Unity's Internal Build System, so the
+Android Resolver plugin handles known cases of this variable substitution by
+exploding the AAR into a folder and replacing `${applicationId}` with the
+`bundleID`.
+
+Disabling AAR explosion and therefore Android manifest processing can be done
+via the `Assets > External Dependency Manager > Android Resolver > Settings`
+menu. You may want to disable explosion of AARs if you're exporting a project to
+be built with Gradle/Android Studio.
+
+#### ABI Stripping
+
+Some AAR files contain native libraries (.so files) for each ABI supported by
+Android. Unfortunately, when targeting a single ABI (e.g x86), Unity does not
+strip native libraries for unused ABIs. To strip unused ABIs, the Android
+Resolver plugin explodes an AAR into a folder and removes unused ABIs to reduce
+the built APK size. Furthermore, if native libraries are not stripped from an
+APK (e.g you have a mix of Unity's x86 library and some armeabi-v7a libraries)
+Android may attempt to load the wrong library for the current runtime ABI
+completely breaking your plugin when targeting some architectures.
+
+AAR explosion and therefore ABI stripping can be disabled via the `Assets >
+External Dependency Manager > Android Resolver > Settings` menu. You may want to
+disable explosion of AARs if you're exporting a project to be built with
+Gradle/Android Studio.
+
+#### Resolution Strategies
+
+By default the Android Resolver will use Gradle to download dependencies prior
+to integrating them into a Unity project. This works with Unity's internal build
+system and Gradle/Android Studio project export.
+
+It's possible to change the resolution strategy via the `Assets > External
+Dependency Manager > Android Resolver > Settings` menu.
+
+##### Download Artifacts with Gradle
+
+Using the default resolution strategy, the Android resolver executes the
+following operations:
+
+- Remove the result of previous Android resolutions. E.g Delete all files and
+ directories labeled with "gpsr" under `Plugins/Android` from the project.
+
+- Collect the set of Android dependencies (libraries) specified by a project's
+ `*Dependencies.xml` files.
+
+- Run `download_artifacts.gradle` with Gradle to resolve conflicts and, if
+ successful, download the set of resolved Android libraries (AARs, JARs).
+
+- Process each AAR/JAR so that it can be used with the currently selected
+ Unity build system (e.g Internal vs. Gradle, Export vs. No Export). This
+ involves patching each reference to `applicationId` in the
+ `AndroidManifest.xml` with the project's bundle ID. This means resolution
+ must be run again if the bundle ID has changed.
+
+- Move the processed AARs to `Plugins/Android` so they will be included when
+ Unity invokes the Android build.
+
+##### Integrate into mainTemplate.gradle
+
+Unity 5.6 introduced support for customizing the `build.gradle` used to build
+Unity projects with Gradle. When the *Patch mainTemplate.gradle* setting is
+enabled, rather than downloading artifacts before the build, Android resolution
+results in the execution of the following operations:
+
+- Remove the result of previous Android resolutions. E.g Delete all files and
+ directories labeled with "gpsr" under `Plugins/Android` from the project and
+ remove sections delimited with `// Android Resolver * Start` and `// Android
+ Resolver * End` lines.
+
+- Collect the set of Android dependencies (libraries) specified by a project's
+ `*Dependencies.xml` files.
+
+- Rename any `.srcaar` files in the build to `.aar` and exclude them from
+ being included directly by Unity in the Android build as
+ `mainTemplate.gradle` will be patched to include them instead from their
+ local maven repositories.
+
+- Inject the required Gradle repositories into `mainTemplate.gradle` at the
+ line matching the pattern `.*apply plugin:
+ 'com\.android\.(application|library)'.*` or the section starting at the line
+ `// Android Resolver Repos Start`. If you want to control the injection
+ point in the file, the section delimited by the lines `// Android Resolver
+ Repos Start` and `// Android Resolver Repos End` should be placed in the
+ global scope before the `dependencies` section.
+
+- Inject the required Android dependencies (libraries) into
+ `mainTemplate.gradle` at the line matching the pattern `***DEPS***` or the
+ section starting at the line `// Android Resolver Dependencies Start`. If
+ you want to control the injection point in the file, the section delimited
+ by the lines `// Android Resolver Dependencies Start` and `// Android
+ Resolver Dependencies End` should be placed in the `dependencies` section.
+
+- Inject the packaging options logic, which excludes architecture specific
+ libraries based upon the selected build target, into `mainTemplate.gradle`
+ at the line matching the pattern `android +{` or the section starting at the
+ line `// Android Resolver Exclusions Start`. If you want to control the
+ injection point in the file, the section delimited by the lines `// Android
+ Resolver Exclusions Start` and `// Android Resolver Exclusions End` should
+ be placed in the global scope before the `android` section.
+
+#### Dependency Tracking
+
+The Android Resolver creates the
+`ProjectSettings/AndroidResolverDependencies.xml` to quickly determine the set
+of resolved dependencies in a project. This is used by the auto-resolution
+process to only run the expensive resolution process when necessary.
+
+#### Displaying Dependencies
+
+It's possible to display the set of dependencies the Android Resolver would
+download and process in your project via the `Assets > External Dependency
+Manager > Android Resolver > Display Libraries` menu item.
+
+### iOS Resolver
+
+The iOS resolver component of this plugin manages
+[CocoaPods](https://cocoapods.org/). A CocoaPods `Podfile` is generated and the
+`pod` tool is executed as a post build process step to add dependencies to the
+Xcode project exported by Unity.
+
+Dependencies for iOS are added by referring to CocoaPods.
+
+For example, to add the AdMob pod, version 7.0 or greater with bitcode enabled:
+
+```xml
+
+
+
+
+
+```
+
+#### Integration Strategies
+
+The `CocoaPods` are either:
+
+* Downloaded and injected into the Xcode project file directly, rather than
+ creating a separate xcworkspace. We call this `Xcode project` integration.
+
+* If the Unity version supports opening a xcworkspace file, the `pod` tool is
+ used as intended to generate a xcworkspace which references the CocoaPods.
+ We call this `Xcode workspace` integration.
+
+The resolution strategy can be changed via the `Assets > External Dependency
+Manager > iOS Resolver > Settings` menu.
+
+##### Appending text to generated Podfile
+
+In order to modify the generated Podfile you can create a script like this:
+
+```csharp
+using System.IO;
+
+using UnityEditor;
+using UnityEditor.Callbacks;
+using UnityEngine;
+
+public class PostProcessIOS : MonoBehaviour
+{
+ // 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).
+ [PostProcessBuildAttribute(45)]
+ private static void PostProcessBuild_iOS(BuildTarget target, string buildPath)
+ {
+ if (target == BuildTarget.iOS)
+ {
+ using (StreamWriter sw = File.AppendText(buildPath + "/Podfile"))
+ {
+ // E.g. add an app extension
+ sw.WriteLine("\ntarget 'NSExtension' do\n pod 'Firebase/Messaging', '6.6.0'\nend");
+ }
+ }
+ }
+}
+```
+
+### Package Manager Resolver
+
+Adding registries to the
+[Package Manager](https://docs.unity3d.com/Manual/Packages.html) (PM) is a
+manual process. The Package Manager Resolver (PMR) component of this plugin
+makes it easy for plugin maintainers to distribute new PM registry servers and
+easy for plugin users to manage PM registry servers.
+
+#### Adding Registries
+
+For example, to add a registry for plugins in the scope `com.coolstuff`:
+
+```xml
+
+
+
+ com.coolstuff
+
+
+
+```
+
+When PMR is loaded it will prompt the developer to add the registry to their
+project if it isn't already present in the `Packages/manifest.json` file.
+
+For more information, see Unity's documentation on
+[scoped package registries](https://docs.unity3d.com/Manual/upm-scoped.html).
+
+#### Managing Registries
+
+It's possible to add and remove registries that are specified via PMR XML
+configuration files via the following menu options:
+
+* `Assets > External Dependency Manager > Package Manager Resolver > Add
+ Registries` will prompt the user with a window which allows them to add
+ registries discovered in the project to the Package Manager.
+
+* `Assets > External Dependency Manager > Package Manager Resolver > Remove
+ Registries` will prompt the user with a window which allows them to remove
+ registries discovered in the project from the Package Manager.
+
+* `Assets > External Dependency Manager > Package Manager Resolver > Modify
+ Registries` will prompt the user with a window which allows them to add or
+ remove registries discovered in the project.
+
+#### Migration
+
+PMR can migrate Version Handler packages installed in the `Assets` folder to PM
+packages. This requires the plugins to implement the following:
+
+* `.unitypackage` must include a Version Handler manifests that describes the
+ components of the plugin. If the plugin has no dependencies the manifest
+ would just include the files in the plugin.
+
+* The PM package JSON provided by the registry must include a keyword (in the
+ `versions.VERSION.keyword` list) that maps the PM package to a Version
+ Handler package using the format `vh-name:VERSION_HANDLER_MANIFEST_NAME`
+ where `VERSION_HANDLER_MANIFEST_NAME` is the name of the manifest defined in
+ the `.unitypackage`. For more information see the description of the
+ `gvhp_manifestname` asset label in the [Version Handler](#version-handler)
+ section.
+
+When using the `Assets > External Dependency Manager > Package Manager
+Resolver > Migrate Packages` menu option, PMR then will:
+
+* List all Version Handler manager packages in the project.
+
+* Search all available packages in the PM registries and fetch keywords
+ associated with each package parsing the Version Handler manifest names for
+ each package.
+
+* Map each installed Version Handler package to a PM package.
+
+* Prompt the user to migrate the discovered packages.
+
+* Perform package migration for all selected packages if the user clicks the
+ `Apply` button.
+
+#### Configuration
+
+PMR can be configured via the `Assets > External Dependency Manager > Package
+Manager Resolver > Settings` menu option:
+
+* `Add package registries` when enabled, when the plugin loads or registry
+ configuration files change, this will prompt the user to add registries that
+ are not present in the Package Manager.
+
+* `Prompt to add package registries` will cause a developer to be prompted
+ with a window that will ask for confirmation before adding registries. When
+ this is disabled registries are added silently to the project.
+
+* `Prompt to migrate packages` will cause a developer to be prompted with a
+ window that will ask for confirmation before migrating packages installed in
+ the `Assets` directory to PM packages.
+
+* `Enable Analytics Reporting` when enabled, reports the use of the plugin to
+ the developers so they can make imrpovements.
+
+* `Verbose logging` when enabled prints debug information to the console which
+ can be useful when filing bug reports.
+
+### Version Handler
+
+The Version Handler component of this plugin manages:
+
+* Shared Unity plugin dependencies.
+
+* Upgrading Unity plugins by cleaning up old files from previous versions.
+
+* Uninstallation of plugins that are distributed with manifest files.
+
+* Restoration of plugin assets to their original install locations if assets
+ are tagged with the `exportpath` label.
+
+Since the Version Handler needs to modify Unity asset metadata (`.meta` files),
+to enable/disable components, rename and delete asset files it does not work
+with Package Manager installed packages. It's still possible to include EDM4U in
+Package Manager packages, the Version Handler component simply won't do anything
+to PM plugins in this case.
+
+#### Using Version Handler Managed Plugins
+
+If a plugin is imported at multiple different versions into a project, if the
+Version Handler is enabled, it will automatically check all managed assets to
+determine the set of assets that are out of date and assets that should be
+removed. To disable automatic checking managed assets disable the `Enable
+version management` option in the `Assets > External Dependency Manager >
+Version Handler > Settings` menu.
+
+If version management is disabled, it's possible to check managed assets
+manually using the `Assets > External Dependency Manager > Version Handler >
+Update` menu option.
+
+##### Listing Managed Plugins
+
+Plugins managed by the Version Handler, those that ship with manifest files, can
+displayed using the `Assets > External Dependency Manager > Version Handler >
+Display Managed Packages` menu option. The list of plugins are written to the
+console window along with the set of files used by each plugin.
+
+##### Uninstalling Managed Plugins
+
+Plugins managed by the Version Handler, those that ship with manifest files, can
+be removed using the `Assets > External Dependency Manager > Version Handler >
+Uninstall Managed Packages` menu option. This operation will display a window
+that allows a developer to select a set of plugins to remove which will remove
+all files owned by each plugin excluding those that are in use by other
+installed plugins.
+
+Files managed by the Version Handler, those labeled with the `gvh` asset label,
+can be checked to see whether anything needs to be upgraded, disabled or removed
+using the `Assets > External Dependency Manager > Version Handler > Update` menu
+option.
+
+##### Restore Install Paths
+
+Some developers move assets around in their project which can make it harder for
+plugin maintainers to debug issues if this breaks Unity's
+[special folders](https://docs.unity3d.com/Manual/SpecialFolders.html) rules. If
+assets are labeled with their original install/export path (see
+`gvhp_exportpath` below), Version Handler can restore assets to their original
+locations when using the `Assets > External Dependency Manager > Version
+Handler > Move Files To Install Locations` menu option.
+
+##### Settings
+
+Some behavior of the Version Handler can be configured via the `Assets >
+External Dependency Manager > Version Handler > Settings` menu option.
+
+* `Enable version management` controls whether the plugin should automatically
+ check asset versions and apply changes. If this is disabled the process
+ should be run manually when installing or upgrading managed plugins using
+ `Assets > External Dependency Manager > Version Handler > Update`.
+
+* `Rename to canonical filenames` is a legacy option that will rename files to
+ remove version numbers and other labels from filenames.
+
+* `Prompt for obsolete file deletion` enables the display of a window when
+ obsolete files are deleted allowing the developer to select which files to
+ delete and those to keep.
+
+* `Allow disabling files via renaming` controls whether obsolete or disabled
+ files should be disabled by renaming them to `myfilename_DISABLED`. Renaming
+ to disable files is required in some scenarios where Unity doesn't support
+ removing files from the build via the PluginImporter.
+
+* `Enable Analytics Reporting` enables/disables usage reporting to plugin
+ developers to improve the product.
+
+* `Verbose logging` enables *very* noisy log output that is useful for
+ debugging while filing a bug report or building a new managed plugin.
+
+* `Use project settings` saves settings for the plugin in the project rather
+ than system-wide.
+
+#### Redistributing a Managed Plugin
+
+The Version Handler employs a couple of methods for managing version selection,
+upgrade and removal of plugins.
+
+* Each plugin can ship with a manifest file that lists the files it includes.
+ This makes it possible for Version Handler to calculate the difference in
+ assets between the most recent release of a plugin and the previous release
+ installed in a project. If a files are removed the Version Handler will
+ prompt the user to clean up obsolete files.
+
+* Plugins can ship using assets with unique names, unique GUIDs and version
+ number labels. Version numbers can be attached to assets using labels or
+ added to the filename (e.g `myfile.txt` would be `myfile_version-x.y.z.txt).
+ This allows the Version Handler to determine which set of files are the same
+ file at different versions, select the most recent version and prompt the
+ developer to clean up old versions.
+
+Unity plugins can be managed by the Version Handler using the following steps:
+
+1. Add the `gvh` asset label to each asset (file) you want Version Handler to
+ manage.
+
+1. Add the `gvh_version-VERSION` label to each asset where `VERSION` is the
+ version of the plugin you're releasing (e.g 1.2.3).
+
+1. Add the `gvhp_exportpath-PATH` label to each asset where `PATH` is the
+ export path of the file when the `.unitypackage` is created. This is used to
+ track files if they're moved around in a project by developers.
+
+1. Optional: Add `gvh_targets-editor` label to each editor DLL in your plugin
+ and disable `editor` as a target platform for the DLL. The Version Handler
+ will enable the most recent version of this DLL when the plugin is imported.
+
+1. Optional: If your plugin is included in other Unity plugins, you should add
+ the version number to each filename and change the GUID of each asset. This
+ allows multiple versions of your plugin to be imported into a Unity project,
+ with the Version Handler component activating only the most recent version.
+
+1. Create a manifest text file named `MY_UNIQUE_PLUGIN_NAME_VERSION.txt` that
+ lists all the files in your plugin relative to the project root. Then add
+ the `gvh_manifest` label to the asset to indicate this file is a plugin
+ manifest.
+
+1. Optional: Add a `gvhp_manifestname-NAME` label to your manifest file to
+ provide a human readable name for your package. If this isn't provided the
+ name of the manifest file will be used as the package name. NAME can match
+ the pattern `[0-9]+[a-zA-Z -]` where a leading integer will set the priority
+ of the name where `0` is the highest priority and preferably used as the
+ display name. The lowest value (i.e highest priority name) will be used as
+ the display name and all other specified names will be aliases of the
+ display name. Aliases can refer to previous names of the package allowing
+ renaming across published versions.
+
+1. Redistribute EDM4U Unity plugin with your plugin. See the
+ [Plugin Redistribution](#plugin-redistribution) section for details.
+
+If you follow these steps:
+
+* When users import a newer version of your plugin, files referenced by the
+ older version's manifest are cleaned up.
+
+* The latest version of the plugin will be selected when users import multiple
+ packages that include your plugin, assuming the steps in
+ [Plugin Redistribution](#plugin-redistribution) are followed.
+
+## Background
+
+Many Unity plugins have dependencies upon Android specific libraries, iOS
+CocoaPods, and sometimes have transitive dependencies upon other Unity plugins.
+This causes the following problems:
+
+* Integrating platform specific (e.g Android and iOS) libraries within a Unity
+ project can be complex and a burden on a Unity plugin maintainer.
+* The process of resolving conflicting dependencies on platform specific
+ libraries is pushed to the developer attempting to use a Unity plugin. The
+ developer trying to use your plugin is very likely to give up when faced
+ with Android or iOS specific build errors.
+* The process of resolving conflicting Unity plugins (due to shared Unity
+ plugin components) is pushed to the developer attempting to use your Unity
+ plugin. In an effort to resolve conflicts, the developer will very likely
+ attempt to resolve problems by deleting random files in your plugin, report
+ bugs when that doesn't work and finally give up.
+
+EDM4U provides solutions for each of these problems.
+
+### Android Dependency Management
+
+The *Android Resolver* component of this plugin will download and integrate
+Android library dependencies and handle any conflicts between plugins that share
+the same dependencies.
+
+Without the Android Resolver, typically Unity plugins bundle their AAR and JAR
+dependencies, e.g. a Unity plugin `SomePlugin` that requires the Google Play
+Games Android library would redistribute the library and its transitive
+dependencies in the folder `SomePlugin/Android/`. When a user imports
+`SomeOtherPlugin` that includes the same libraries (potentially at different
+versions) in `SomeOtherPlugin/Android/`, the developer using `SomePlugin` and
+`SomeOtherPlugin` will see an error when building for Android that can be hard
+to interpret.
+
+Using the Android Resolver to manage Android library dependencies:
+
+* Solves Android library conflicts between plugins.
+* Handles all of the various processing steps required to use Android
+ libraries (AARs, JARs) in Unity 4.x and above projects. Almost all versions
+ of Unity have - at best - partial support for AARs.
+* (Experimental) Supports minification of included Java components without
+ exporting a project.
+
+### iOS Dependency Management
+
+The *iOS Resolver* component of this plugin integrates with
+[CocoaPods](https://cocoapods.org/) to download and integrate iOS libraries and
+frameworks into the Xcode project Unity generates when building for iOS. Using
+CocoaPods allows multiple plugins to utilize shared components without forcing
+developers to fix either duplicate or incompatible versions of libraries
+included through multiple Unity plugins in their project.
+
+### Package Manager Registry Setup
+
+The [Package Manager](https://docs.unity3d.com/Manual/Packages.html) (PM) makes
+use of [NPM](https://www.npmjs.com/) registry servers for package hosting and
+provides ways to discover, install, upgrade and uninstall packages. This makes
+it easier for developers to manage plugins within their projects.
+
+However, installing additional package registries requires a few manual steps
+that can potentially be error prone. The *Package Manager Resolver* component of
+this plugin integrates with [PM](https://docs.unity3d.com/Manual/Packages.html)
+to provide a way to auto-install PM package registries when a `.unitypackage` is
+installed which allows plugin maintainers to ship a `.unitypackage` that can
+provide access to their own PM registry server to make it easier for developers
+to manage their plugins.
+
+### Unity Plugin Version Management
+
+Finally, the *Version Handler* component of this plugin simplifies the process
+of managing transitive dependencies of Unity plugins and each plugin's upgrade
+process.
+
+For example, without the Version Handler plugin, if:
+
+* Unity plugin `SomePlugin` includes `EDM4U` plugin at version 1.1.
+* Unity plugin `SomeOtherPlugin` includes `EDM4U` plugin at version 1.2.
+
+The version of `EDM4U` included in the developer's project depends upon the
+order the developer imports `SomePlugin` or `SomeOtherPlugin`.
+
+This results in:
+
+* `EDM4U` at version 1.2, if `SomePlugin` is imported then `SomeOtherPlugin`
+ is imported.
+* `EDM4U` at version 1.1, if `SomeOtherPlugin` is imported then `SomePlugin`
+ is imported.
+
+The Version Handler solves the problem of managing transitive dependencies by:
+
+* Specifying a set of packaging requirements that enable a plugin at different
+ versions to be imported into a Unity project.
+* Providing activation logic that selects the latest version of a plugin
+ within a project.
+
+When using the Version Handler to manage `EDM4U` included in `SomePlugin` and
+`SomeOtherPlugin`, from the prior example, version 1.2 will always be the
+version activated in a developer's Unity project.
+
+Plugin creators are encouraged to adopt this library to ease integration for
+their customers. For more information about integrating EDM4U into your own
+plugin, see the [Plugin Redistribution](#plugin-redistribution) section of this
+document.
+
+## Analytics
+
+The External Dependency Manager for Unity plugin by default logs usage to Google
+Analytics. The purpose of the logging is to quantitatively measure the usage of
+functionality, to gather reports on integration failures and to inform future
+improvements to the developer experience of the External Dependency Manager
+plugin. Note that the analytics collected are limited to the scope of the EDM4U
+plugin’s usage.
+
+For details of what is logged, please refer to the usage of
+`EditorMeasurement.Report()` in the source code.
+
+## Plugin Redistribution
+
+If you are a package maintainer and your package depends on EDM4U, it is highly
+recommended to use the UPM format and add EDM4U as a dependency. If you must
+include it in your `.unitypackage`, redistributing `EDM4U` inside your own
+plugin might ease the integration process for your users.
+
+If you wish to redistribute `EDM4U` inside your plugin, you **must** follow
+these steps when importing the `external-dependency-manager-*.unitypackage`, and
+when exporting your own plugin package:
+
+1. Import the `external-dependency-manager-*.unitypackage` into your plugin
+ project by
+ [running Unity from the command line](https://docs.unity3d.com/Manual/CommandLineArguments.html),
+ ensuring that you add the `-gvh_disable` option.
+1. Export your plugin by
+ [running Unity from the command line](https://docs.unity3d.com/Manual/CommandLineArguments.html),
+ ensuring that you:
+ - Include the contents of the `Assets/PlayServicesResolver` and
+ `Assets/ExternalDependencyManager` directory.
+ - Add the `-gvh_disable` option.
+
+You **must** specify the `-gvh_disable` option in order for the Version Handler
+to work correctly!
+
+For example, the following command will import the
+`external-dependency-manager-1.2.46.0.unitypackage` into the project
+`MyPluginProject` and export the entire Assets folder to
+`MyPlugin.unitypackage`:
+
+```shell
+Unity -gvh_disable \
+ -batchmode \
+ -importPackage external-dependency-manager-1.2.46.0.unitypackage \
+ -projectPath MyPluginProject \
+ -exportPackage Assets MyPlugin.unitypackage \
+ -quit
+```
+
+### Background
+
+The *Version Handler* component relies upon deferring the load of editor DLLs so
+that it can run first and determine the latest version of a plugin component to
+activate. The build of `EDM4U` plugin has Unity asset metadata that is
+configured so that the editor components are not initially enabled when it's
+imported into a Unity project. To maintain this configuration when importing the
+`external-dependency-manager.unitypackage` into a Unity plugin project, you
+*must* specify the command line option `-gvh_disable` which will prevent the
+Version Handler component from running and changing the Unity asset metadata.
+
+## Building from Source
+
+To build this plugin from source you need the following tools installed: * Unity
+2021 and below (with iOS and Android modules installed) * Java 11
+
+You can build the plugin by running the following from your shell (Linux / OSX):
+
+```shell
+./gradlew build
+
+```
+
+or Windows:
+
+```shell
+./gradlew.bat build
+```
+
+If Java 11 is not your default Java command, add
+`-Dorg.gradle.java.home=` to the command above.
+
+## Testing
+
+You can run the tests by running the following from your shell (Linux / OSX):
+
+```shell
+./gradlew test
+```
+
+or Windows:
+
+```shell
+./gradlew.bat test
+```
+
+The following properties can be set to narrow down the tests to run or change
+the test run behavior.
+
+* `INTERACTIVE_MODE_TESTS_ENABLED` - Default to `1`. Set to `1` to enable
+ interactive mode tests, which requires GPU on the machine. Otherwise, only
+ run tests in the batch mode.
+* `INCLUDE_TEST_TYPES` - Default to empty string, which means to include every
+ type of the test. To narrow down the types of test to run, set this
+ properties with a list of case-insensitive type strings separated by comma.
+ For instance, `-PINCLUDE_TEST_TYPES="Python,NUnit"` means to include only
+ Python tests and NUnit tests. See `TestTypeEnum` in `build.gradle` for
+ available options.
+* `EXCLUDE_TEST_TYPES` - Default to empty string, which means to exclude none.
+ To add types of tests to exclude, set this properties with a list of
+ case-insensitive type strings separated by comma. For instance,
+ `-PEXCLUDE_TEST_TYPES="Python,NUnit"` means to exclude Python tests and
+ NUnit tests. See `TestTypeEnum` in `build.gradle` for available options.
+* `INCLUDE_TEST_MODULES` - Default to empty string, which means to include the
+ tests for every modules. To narrow down modules to test, set this properties
+ with a list of case-insensitive module strings separated by comma. For
+ instance, `-PINCLUDE_TEST_MODULES="Tool,AndroidResolver"` means to run tests
+ for tools and Android Resolver only. See `TestModuleEnum` in `build.gradle`
+ for available options.
+* `EXCLUDE_TEST_MODULES` - Default to empty string, which means to exclude
+ none. To add modules to exclude, set this properties with a list of
+ case-insensitive module strings separated by comma. For instance,
+ `-PEXCLUDE_TEST_MODULES="Tool,AndroidResolver"` means to run tests for any
+ modules other than tools and Android Resolver. See `TestModuleEnum` in
+ `build.gradle` for available options.
+* `EXCLUDE_TESTS` - Default to empty string, which means to exclude none. To
+ add tests to exclude, set this properties with a list of case-insensitive
+ test names separated by comma. For instance,
+ `-PEXCLUDE_TESTS="testGenGuids,testDownloadArtifacts"` means to run tests
+ except the tests with name of `testGenGuids` and `testDownloadArtifacts`.
+* `CONTINUE_ON_FAIL_FOR_TESTS_ENABLED` - Default to `1`. Set to `1` to
+ continue running the next test when the current one fails. Otherwise, the
+ build script stops whenever any test fails.
+
+For instance, by running the following command, it only runs the Unity
+integration tests that does not requires GPU, but exclude tests for Android
+Resolver module and iOS Resolver module.
+
+```shell
+./gradlew test \
+ -PINTERACTIVE_MODE_TESTS_ENABLED=0 \
+ -PINCLUDE_TEST_TYPES="Integration" \
+ -PEXCLUDE_TEST_MODULES="AndroidResolver,iOSResolver"
+```
+
+## Releasing
+
+Each time a new build of this plugin is checked into the source tree you need to
+do the following:
+
+* Bump the plugin version variable `pluginVersion` in `build.gradle`
+* Update `CHANGELOG.md` with the new version number and changes included in
+ the release.
+* Build the release using `./gradlew release` which performs the following:
+ * Updates `external-dependency-manager-*.unitypackage`
+ * Copies the unpacked plugin to the `exploded` directory.
+ * Updates template metadata files in the `plugin` directory. The GUIDs of
+ all asset metadata is modified due to the version number change. Each
+ file within the plugin is versioned to allow multiple versions of the
+ plugin to be imported into a Unity project which allows the most recent
+ version to be activated by the Version Handler component.
+* Create release commit using `./gradlew gitCreateReleaseCommit` which
+ performs `git commit -a -m "description from CHANGELOG.md"`
+* Once the release commit is merge, tag the release using `./gradlew
+ gitTagRelease` which performs the following:
+ * `git tag -a pluginVersion -m "version RELEASE"` to tag the release.
+* Update tags on remote branch using `git push --tag REMOTE HEAD:master`
diff --git a/Assets/ExternalDependencyManager/Editor/README.md.meta b/Assets/ExternalDependencyManager/Editor/README.md.meta
new file mode 100644
index 0000000..a45aba8
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/README.md.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 77919e84cef8419ab4b725fc16e83d52
+labels:
+- gvh
+- gvh_version-1.2.186
+- gvhp_exportpath-ExternalDependencyManager/Editor/README.md
+timeCreated: 1584567712
+licenseType: Store
+TextScriptImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.186_manifest.txt b/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.186_manifest.txt
new file mode 100644
index 0000000..81c97ed
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.186_manifest.txt
@@ -0,0 +1,13 @@
+Assets/ExternalDependencyManager/Editor/1.2.186/Google.IOSResolver.dll
+Assets/ExternalDependencyManager/Editor/1.2.186/Google.IOSResolver.pdb
+Assets/ExternalDependencyManager/Editor/1.2.186/Google.JarResolver.dll
+Assets/ExternalDependencyManager/Editor/1.2.186/Google.JarResolver.pdb
+Assets/ExternalDependencyManager/Editor/1.2.186/Google.PackageManagerResolver.dll
+Assets/ExternalDependencyManager/Editor/1.2.186/Google.PackageManagerResolver.pdb
+Assets/ExternalDependencyManager/Editor/1.2.186/Google.VersionHandlerImpl.dll
+Assets/ExternalDependencyManager/Editor/1.2.186/Google.VersionHandlerImpl.pdb
+Assets/ExternalDependencyManager/Editor/CHANGELOG.md
+Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll
+Assets/ExternalDependencyManager/Editor/Google.VersionHandler.pdb
+Assets/ExternalDependencyManager/Editor/LICENSE
+Assets/ExternalDependencyManager/Editor/README.md
diff --git a/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.186_manifest.txt.meta b/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.186_manifest.txt.meta
new file mode 100644
index 0000000..06cb82a
--- /dev/null
+++ b/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.186_manifest.txt.meta
@@ -0,0 +1,15 @@
+fileFormatVersion: 2
+guid: c9a3138961c74d99b7046b783112fceb
+labels:
+- gvh
+- gvh_manifest
+- gvh_version-1.2.186
+- gvhp_exportpath-ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.186_manifest.txt
+- gvhp_manifestname-0External Dependency Manager
+- gvhp_manifestname-play-services-resolver
+timeCreated: 1474401009
+licenseType: Store
+TextScriptImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/WordConnectGameToolkit/Resources/Localization/Russian.txt b/Assets/WordConnectGameToolkit/Resources/Localization/Russian.txt
index b221bdd..c036d80 100644
--- a/Assets/WordConnectGameToolkit/Resources/Localization/Russian.txt
+++ b/Assets/WordConnectGameToolkit/Resources/Localization/Russian.txt
@@ -18,7 +18,7 @@ GIFT : Подарок
LEVELCLEARED : УРОВЕНЬ ПРОЙДЕН!
SETTINGS : Настройки
SHOP : МАГАЗИН
-PRIVACY : КОНФИДЕНЦИАЛЬНОСТЬ
+PRIVACY : ПРИВАТНОСТЬ
QUITTHEGAME : Выйти из игры
DOYOUWANTTOQUIT : Вы действительно хотите выйти?
YES : Да
@@ -52,7 +52,7 @@ EXITGAME : Выйти из игры
ADVENTURE : ПРИКЛЮЧЕНИЕ
CLASSIC : КЛАССИКА
TUTORIAL : Обучение
-RESTORE_PURCHASES : Восстановить покупки
+RESTORE_PURCHASES : Восст. покупки
EXTRAWORDS : Дополнительные слова
WORDSNOTINTCLUDEDINTHISLEVEL : Слова, не включенные в этот уровень
CLAIM : Получить
diff --git a/Assets/WordConnectGameToolkit/Resources/Popups/SettingsGame.prefab b/Assets/WordConnectGameToolkit/Resources/Popups/SettingsGame.prefab
index 45c990d..7e22d93 100644
--- a/Assets/WordConnectGameToolkit/Resources/Popups/SettingsGame.prefab
+++ b/Assets/WordConnectGameToolkit/Resources/Popups/SettingsGame.prefab
@@ -194,6 +194,7 @@ MonoBehaviour:
onClick:
m_PersistentCalls:
m_Calls: []
+ noSound: 0
--- !u!1 &5404509939308836076
GameObject:
m_ObjectHideFlags: 0
@@ -412,6 +413,10 @@ PrefabInstance:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
+ - target: {fileID: 621257374199314380, guid: 42fecf35a1e774a20a5f0e45c3d3c10e, type: 3}
+ propertyPath: m_IsActive
+ value: 0
+ objectReference: {fileID: 0}
- target: {fileID: 2363198712010147430, guid: 42fecf35a1e774a20a5f0e45c3d3c10e, type: 3}
propertyPath: m_AnchorMax.y
value: 0
@@ -597,7 +602,10 @@ MonoBehaviour:
- LanguageSelection
isPopupAboveTags: 0
fadeAlpha: 0.98
+ appearSound: {fileID: 0}
+ disappearSound: {fileID: 0}
privacypolicy: {fileID: 0}
+ googleUMPConsent: {fileID: 0}
restorePurchase: {fileID: 0}
vibrationSlider: {fileID: 6267439442198750998}
homeButton: {fileID: 3971681028222562917}
diff --git a/Assets/WordConnectGameToolkit/Resources/Settings/AdsSettings.asset b/Assets/WordConnectGameToolkit/Resources/Settings/AdsSettings.asset
index f3adb2c..36fb289 100644
--- a/Assets/WordConnectGameToolkit/Resources/Settings/AdsSettings.asset
+++ b/Assets/WordConnectGameToolkit/Resources/Settings/AdsSettings.asset
@@ -18,7 +18,7 @@ MonoBehaviour:
testInEditor: 1
platforms: 1
appId: 5698950
- adsHandler: {fileID: 0}
+ adsHandler: {fileID: 11400000, guid: 60c77287bd6d042938fbd15e5462e051, type: 2}
adElements:
- placementId: Interstitial_iOS
adReference: {fileID: 11400000, guid: f9303f4b583464bc08f45f673b581f90, type: 2}
@@ -37,7 +37,7 @@ MonoBehaviour:
testInEditor: 1
platforms: 1
appId: 5698950
- adsHandler: {fileID: 0}
+ adsHandler: {fileID: 11400000, guid: 74706189f5004431584663da028f09e5, type: 2}
adElements:
- placementId: Banner_iOS
adReference: {fileID: 11400000, guid: 4396e62ba27584ef79ac362c4948ee63, type: 2}
@@ -50,7 +50,7 @@ MonoBehaviour:
testInEditor: 1
platforms: 0
appId: 5870065
- adsHandler: {fileID: 0}
+ adsHandler: {fileID: 11400000, guid: 60c77287bd6d042938fbd15e5462e051, type: 2}
adElements:
- placementId: Interstitial_Android
adReference: {fileID: 11400000, guid: f9303f4b583464bc08f45f673b581f90, type: 2}
@@ -69,7 +69,7 @@ MonoBehaviour:
testInEditor: 1
platforms: 0
appId: 5870065
- adsHandler: {fileID: 0}
+ adsHandler: {fileID: 11400000, guid: 74706189f5004431584663da028f09e5, type: 2}
adElements:
- placementId: Banner_Android
adReference: {fileID: 11400000, guid: 4396e62ba27584ef79ac362c4948ee63, type: 2}
diff --git a/Assets/WordConnectGameToolkit/Scripts/Editor/GUI/CustomButtonDrawer.cs b/Assets/WordConnectGameToolkit/Scripts/Editor/GUI/CustomButtonDrawer.cs
index cd4788e..d328d81 100644
--- a/Assets/WordConnectGameToolkit/Scripts/Editor/GUI/CustomButtonDrawer.cs
+++ b/Assets/WordConnectGameToolkit/Scripts/Editor/GUI/CustomButtonDrawer.cs
@@ -34,6 +34,7 @@ namespace WordsToolkit.Scripts.Editor.GUI
var root = new VisualElement();
root.Add(new PropertyField(serializedObject.FindProperty("noSound")));
+ root.Add(new PropertyField(serializedObject.FindProperty("isRewarded")));
root.Add(new PropertyField(serializedObject.FindProperty("overrideClickSound")));
root.Add(new PropertyField(serializedObject.FindProperty("overrideAnimatorController")));
diff --git a/Assets/WordConnectGameToolkit/Scripts/GUI/Buttons/Boosts/BaseBoostButton.cs b/Assets/WordConnectGameToolkit/Scripts/GUI/Buttons/Boosts/BaseBoostButton.cs
index ea62f95..394aa81 100644
--- a/Assets/WordConnectGameToolkit/Scripts/GUI/Buttons/Boosts/BaseBoostButton.cs
+++ b/Assets/WordConnectGameToolkit/Scripts/GUI/Buttons/Boosts/BaseBoostButton.cs
@@ -36,6 +36,7 @@ namespace WordsToolkit.Scripts.GUI.Buttons.Boosts
private bool isActive;
private bool isAnimating;
+ protected override bool ShouldShowRewarded() => isRewarded && resourseToHoldBoost.GetValue() == 0;
protected override void OnEnable()
{
@@ -70,6 +71,11 @@ namespace WordsToolkit.Scripts.GUI.Buttons.Boosts
priceObject.gameObject.SetActive(false);
countText.text = resourseToHoldBoost.GetValue().ToString();
}
+ else if (ShouldShowRewarded())
+ {
+ countTextObject.gameObject.SetActive(false);
+ priceObject.gameObject.SetActive(false);
+ }
else
{
countTextObject.gameObject.SetActive(false);
@@ -96,6 +102,10 @@ namespace WordsToolkit.Scripts.GUI.Buttons.Boosts
{
ActivateBoost();
}
+ else if (ShouldShowRewarded())
+ {
+ return;
+ }
// If not, consume from the regular resource
else if (resourceManager.ConsumeWithEffects(resourceToPay, count))
{
@@ -110,6 +120,13 @@ namespace WordsToolkit.Scripts.GUI.Buttons.Boosts
UpdatePriceDisplay();
}
+ protected override void ExecuteEvent()
+ {
+ if(isRewarded)
+ resourseToHoldBoost.Add(1);
+ base.ExecuteEvent();
+ }
+
protected virtual void ActivateBoost(bool hideButtons = true)
{
isAnimating = true;
diff --git a/Assets/WordConnectGameToolkit/Scripts/GUI/Buttons/CustomButton.cs b/Assets/WordConnectGameToolkit/Scripts/GUI/Buttons/CustomButton.cs
index bfe11cd..0c28d16 100644
--- a/Assets/WordConnectGameToolkit/Scripts/GUI/Buttons/CustomButton.cs
+++ b/Assets/WordConnectGameToolkit/Scripts/GUI/Buttons/CustomButton.cs
@@ -17,6 +17,8 @@ using UnityEngine.UI;
using VContainer;
using WordsToolkit.Scripts.Audio;
using WordsToolkit.Scripts.Enums;
+using WordsToolkit.Scripts.Popups.Reward;
+using WordsToolkit.Scripts.Services.Ads.AdUnits;
using WordsToolkit.Scripts.System;
using WordsToolkit.Scripts.System.Haptic;
@@ -32,31 +34,48 @@ namespace WordsToolkit.Scripts.GUI.Buttons
public new ButtonClickedEvent onClick;
private new Animator animator;
public bool noSound;
+ public bool isRewarded;
+ private RewardedButtonHandler handler;
+ private PointerEventData currentEventData;
private static bool blockInput;
+ protected virtual bool ShouldShowRewarded() => isRewarded;
+
public static CustomButton latestClickedButton;
private IAudioService audioService;
+ private IObjectResolver objectResolver;
[Inject]
- public void Construct(IAudioService audioService)
+ public void Construct(IAudioService audioService, IObjectResolver objectResolver)
{
this.audioService = audioService;
+ this.objectResolver = objectResolver;
}
protected override void OnEnable()
{
isClicked = false;
- // run only in runtime
+ if (ShouldShowRewarded() && !GetComponent() && Application.isPlaying)
+ {
+ handler = gameObject.AddComponent();
+ objectResolver.Inject(handler);
+ var adReference = UnityEditor.AssetDatabase.LoadAssetAtPath("Assets/WordConnectGameToolkit/Prefabs/ScriptableAds/AdsTypes/Rewarded.asset");
+ handler.adReference = adReference;
+ handler.onRewardedAdComplete = new UnityEngine.Events.UnityEvent();
+ handler.onRewardedAdComplete.AddListener(ExecuteEvent);
+ }
if (Application.isEditor)
{
return;
}
+
base.OnEnable();
animator = GetComponent();
if (overrideAnimatorController != null)
{
animator.runtimeAnimatorController = overrideAnimatorController;
}
+
}
public override void OnPointerClick(PointerEventData eventData)
@@ -66,6 +85,17 @@ namespace WordsToolkit.Scripts.GUI.Buttons
return;
}
+ currentEventData = eventData;
+
+ if (ShouldShowRewarded())
+ {
+ if (handler != null)
+ {
+ handler.ShowRewardedAd();
+ return;
+ }
+ }
+
if (transition != Transition.Animation)
{
Pressed();
@@ -75,7 +105,6 @@ namespace WordsToolkit.Scripts.GUI.Buttons
if(!noSound)
audioService.PlayClick(overrideClickSound);
HapticFeedback.TriggerHapticFeedback(HapticFeedback.HapticForce.Light);
- // Start cooldown
if (gameObject.activeInHierarchy)
{
StartCoroutine(Cooldown());
@@ -91,8 +120,23 @@ namespace WordsToolkit.Scripts.GUI.Buttons
return;
}
latestClickedButton = this;
+ if (ShouldShowRewarded())
+ {
+ if (handler != null)
+ {
+ handler.ShowRewardedAd();
+ return;
+ }
+ }
+
+ ExecuteEvent();
+ }
+
+ protected virtual void ExecuteEvent()
+ {
onClick?.Invoke();
EventManager.GetEvent(EGameEvent.ButtonClicked).Invoke(this);
+ base.onClick?.Invoke();
}
private IEnumerator Cooldown()
diff --git a/Assets/WordConnectGameToolkit/Scripts/Popups/Reward/RewardedButtonHandler.cs b/Assets/WordConnectGameToolkit/Scripts/Popups/Reward/RewardedButtonHandler.cs
index 17d617b..d60655e 100644
--- a/Assets/WordConnectGameToolkit/Scripts/Popups/Reward/RewardedButtonHandler.cs
+++ b/Assets/WordConnectGameToolkit/Scripts/Popups/Reward/RewardedButtonHandler.cs
@@ -23,13 +23,13 @@ namespace WordsToolkit.Scripts.Popups.Reward
public class RewardedButtonHandler : MonoBehaviour
{
[SerializeField]
- private AdReference adReference;
+ public AdReference adReference;
[SerializeField]
private CustomButton rewardedButton;
[SerializeField]
- private UnityEvent onRewardedAdComplete;
+ public UnityEvent onRewardedAdComplete;
[SerializeField]
private UnityEvent onRewardedShow;
@@ -39,10 +39,10 @@ namespace WordsToolkit.Scripts.Popups.Reward
private void Awake()
{
- rewardedButton.onClick.AddListener(ShowRewardedAd);
+ rewardedButton?.onClick.AddListener(ShowRewardedAd);
}
- private void ShowRewardedAd()
+ public void ShowRewardedAd()
{
if (adsManager.IsRewardedAvailable(adReference))
{
diff --git a/ProjectSettings/EditorSettings.asset b/ProjectSettings/EditorSettings.asset
index 44ec361..d63a95a 100644
--- a/ProjectSettings/EditorSettings.asset
+++ b/ProjectSettings/EditorSettings.asset
@@ -25,7 +25,7 @@ EditorSettings:
m_AsyncShaderCompilation: 1
m_PrefabModeAllowAutoSave: 1
m_EnterPlayModeOptionsEnabled: 1
- m_EnterPlayModeOptions: 3
+ m_EnterPlayModeOptions: 2
m_GameObjectNamingDigits: 1
m_GameObjectNamingScheme: 2
m_AssetNamingUsesSpace: 1
diff --git a/ProjectSettings/GvhProjectSettings.xml b/ProjectSettings/GvhProjectSettings.xml
new file mode 100644
index 0000000..1ed33a4
--- /dev/null
+++ b/ProjectSettings/GvhProjectSettings.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset
index 9bd0ccc..6bbf6dc 100644
--- a/ProjectSettings/ProjectSettings.asset
+++ b/ProjectSettings/ProjectSettings.asset
@@ -4,7 +4,7 @@
PlayerSettings:
m_ObjectHideFlags: 0
serializedVersion: 26
- productGUID: d2f7bf57a3fb54ecc8df69ccc66519d8
+ productGUID: 16874775c583f4b2e8f69b3be89e623f
AndroidProfiler: 0
AndroidFilterTouchesWhenObscured: 0
AndroidEnableSustainedPerformanceMode: 0
@@ -141,7 +141,7 @@ PlayerSettings:
loadStoreDebugModeEnabled: 0
visionOSBundleVersion: 1.0
tvOSBundleVersion: 1.0
- bundleVersion: 1.1.8
+ bundleVersion: 1.2
preloadedAssets: []
metroInputSource: 0
wsaTransparentSwapchain: 0