diff --git a/Assets/ExternalDependencyManager/Editor/1.2.172/Google.IOSResolver.dll b/Assets/ExternalDependencyManager/Editor/1.2.172/Google.IOSResolver.dll deleted file mode 100644 index d6d2eac..0000000 Binary files a/Assets/ExternalDependencyManager/Editor/1.2.172/Google.IOSResolver.dll and /dev/null differ diff --git a/Assets/ExternalDependencyManager/Editor/1.2.172/Google.IOSResolver.dll.meta b/Assets/ExternalDependencyManager/Editor/1.2.172/Google.IOSResolver.dll.meta deleted file mode 100644 index ab42058..0000000 --- a/Assets/ExternalDependencyManager/Editor/1.2.172/Google.IOSResolver.dll.meta +++ /dev/null @@ -1,36 +0,0 @@ -fileFormatVersion: 2 -guid: c0093dd325274021b18298ebb1a72f3a -labels: -- gvh -- gvh_version-1.2.172 -- gvhp_exportpath-ExternalDependencyManager/Editor/1.2.172/Google.IOSResolver.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: 0 - 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.172/Google.JarResolver.dll b/Assets/ExternalDependencyManager/Editor/1.2.172/Google.JarResolver.dll deleted file mode 100644 index 90211f5..0000000 Binary files a/Assets/ExternalDependencyManager/Editor/1.2.172/Google.JarResolver.dll and /dev/null differ diff --git a/Assets/ExternalDependencyManager/Editor/1.2.172/Google.JarResolver.dll.meta b/Assets/ExternalDependencyManager/Editor/1.2.172/Google.JarResolver.dll.meta deleted file mode 100644 index db89f69..0000000 --- a/Assets/ExternalDependencyManager/Editor/1.2.172/Google.JarResolver.dll.meta +++ /dev/null @@ -1,36 +0,0 @@ -fileFormatVersion: 2 -guid: bcfc1a2afab84b64b4808eb4124282e3 -labels: -- gvh -- gvh_version-1.2.172 -- gvhp_exportpath-ExternalDependencyManager/Editor/1.2.172/Google.JarResolver.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: 0 - 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.172/Google.PackageManagerResolver.dll b/Assets/ExternalDependencyManager/Editor/1.2.172/Google.PackageManagerResolver.dll deleted file mode 100644 index decb11d..0000000 Binary files a/Assets/ExternalDependencyManager/Editor/1.2.172/Google.PackageManagerResolver.dll and /dev/null differ diff --git a/Assets/ExternalDependencyManager/Editor/1.2.172/Google.PackageManagerResolver.dll.meta b/Assets/ExternalDependencyManager/Editor/1.2.172/Google.PackageManagerResolver.dll.meta deleted file mode 100644 index 3f0b616..0000000 --- a/Assets/ExternalDependencyManager/Editor/1.2.172/Google.PackageManagerResolver.dll.meta +++ /dev/null @@ -1,36 +0,0 @@ -fileFormatVersion: 2 -guid: a645c4a2f32b465f899e48bf884b7986 -labels: -- gvh -- gvh_version-1.2.172 -- gvhp_exportpath-ExternalDependencyManager/Editor/1.2.172/Google.PackageManagerResolver.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: 0 - 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.172/Google.VersionHandlerImpl.dll b/Assets/ExternalDependencyManager/Editor/1.2.172/Google.VersionHandlerImpl.dll deleted file mode 100644 index 748d682..0000000 Binary files a/Assets/ExternalDependencyManager/Editor/1.2.172/Google.VersionHandlerImpl.dll and /dev/null differ diff --git a/Assets/ExternalDependencyManager/Editor/1.2.172/Google.VersionHandlerImpl.dll.meta b/Assets/ExternalDependencyManager/Editor/1.2.172/Google.VersionHandlerImpl.dll.meta deleted file mode 100644 index bda4248..0000000 --- a/Assets/ExternalDependencyManager/Editor/1.2.172/Google.VersionHandlerImpl.dll.meta +++ /dev/null @@ -1,36 +0,0 @@ -fileFormatVersion: 2 -guid: 90bc0a7b76d346cdb0151348847e8e5d -labels: -- gvh -- gvh_version-1.2.172 -- gvhp_exportpath-ExternalDependencyManager/Editor/1.2.172/Google.VersionHandlerImpl.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: 0 - settings: - DefaultValueInitialized: true - - first: - Windows Store Apps: WindowsStoreApps - second: - enabled: 0 - settings: - CPU: AnyCPU - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/ExternalDependencyManager/Editor/CHANGELOG.md b/Assets/ExternalDependencyManager/Editor/CHANGELOG.md deleted file mode 100644 index ee1c7d1..0000000 --- a/Assets/ExternalDependencyManager/Editor/CHANGELOG.md +++ /dev/null @@ -1,1362 +0,0 @@ -# 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 deleted file mode 100644 index 33e07e2..0000000 --- a/Assets/ExternalDependencyManager/Editor/CHANGELOG.md.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 01d990a293634e69adca38d1c9ad4b28 -labels: -- gvh -- gvh_version-1.2.172 -- gvhp_exportpath-ExternalDependencyManager/Editor/CHANGELOG.md -timeCreated: 1584567712 -licenseType: Pro -TextScriptImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll b/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll deleted file mode 100644 index be7c1b4..0000000 Binary files a/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll and /dev/null differ diff --git a/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.meta b/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.meta deleted file mode 100644 index ec1261b..0000000 --- a/Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.meta +++ /dev/null @@ -1,36 +0,0 @@ -fileFormatVersion: 2 -guid: b426f77714504619b30b97528210212f -labels: -- gvh -- gvh_version-1.2.172 -- 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/LICENSE b/Assets/ExternalDependencyManager/Editor/LICENSE deleted file mode 100644 index 6258cc4..0000000 --- a/Assets/ExternalDependencyManager/Editor/LICENSE +++ /dev/null @@ -1,245 +0,0 @@ -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 deleted file mode 100644 index 66d46c2..0000000 --- a/Assets/ExternalDependencyManager/Editor/LICENSE.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: 7816b605d8704fa2b1ad93676ca39942 -labels: -- gvh -- gvh_version-1.2.172 -- gvhp_exportpath-ExternalDependencyManager/Editor/LICENSE -timeCreated: 1584567712 -licenseType: Pro -TextScriptImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/ExternalDependencyManager/Editor/README.md b/Assets/ExternalDependencyManager/Editor/README.md deleted file mode 100644 index b49cf1e..0000000 --- a/Assets/ExternalDependencyManager/Editor/README.md +++ /dev/null @@ -1,768 +0,0 @@ -External Dependency Manager for Unity -======== - -# Overview - -The External Dependency Manager for Unity (EDM4U) -(formerly Play Services Resolver / Jar Resolver) is intended to be used by any -Unity plugin 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. - -Updated releases are available on -[GitHub](https://github.com/googlesamples/unity-jar-resolver) - -# 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. - -EDM 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. - -# 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 - -Before you import EDM4U into your plugin project, you first -need to consider whether you intend to *redistribute* `EDM4U` -along with your own plugin. - -## Plugin Redistribution - -If you're a plugin maintainer, redistributing `EDM4U` inside your own plugin -will ease the integration process for your users, by resolving dependency -conflicts between your plugin and other plugins in a user's project. - -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`: - -``` -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. - -# Android Resolver Usage - -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. - - 1. Add the `external-dependency-manager-*.unitypackage` to your plugin - project (assuming you are developing a plugin). If you are redistributing - EDM4U with your plugin, you **must** follow the - import steps in the [Getting Started](#getting-started) section! - - 2. 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 plugin requires. - - The XML file just needs to be under an `Editor` directory and match the - name `*Dependencies.xml`. For example, - `MyPlugin/Editor/MyPluginDependencies.xml`. - - 3. Follow the steps in the [Getting Started](#getting-started) - section when you are exporting your plugin package. - -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: - -``` - - - - - 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: - -``` - - - - - -``` - -## 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 if the bundle ID is changed again. - - 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 Usage - -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. - - 1. Add the `external-dependency-manager-*.unitypackage` to your plugin - project (assuming you are developing a plugin). If you are redistributing - EDM4U with your plugin, you **must** follow the - import steps in the [Getting Started](#getting-started) section! - - 2. 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 plugin requires. - - The XML file just needs to be under an `Editor` directory and match the - name `*Dependencies.xml`. For example, - `MyPlugin/Editor/MyPluginDependencies.xml`. - - 3. Follow the steps in the [Getting Started](#getting-started) - section when you are exporting your plugin package. - -For example, to add the AdMob pod, version 7.0 or greater with bitcode enabled: - -``` - - - - - -``` - -## 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: -``` -using System.IO; -public class PostProcessIOS : MonoBehaviour { -[PostProcessBuildAttribute(45)]//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) -private static void PostProcessBuild_iOS(BuildTarget target, string buildPath) -{ - if (target == BuildTarget.iOS) - { - - using (StreamWriter sw = File.AppendText(buildPath + "/Podfile")) - { - //in this example I'm adding an app extension - sw.WriteLine("\ntarget 'NSExtension' do\n pod 'Firebase/Messaging', '6.6.0'\nend"); - } - } -} -``` - -# Package Manager Resolver Usage - -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 - - 1. Add the `external-dependency-manager-*.unitypackage` to your plugin - project (assuming you are developing a plugin). If you are redistributing - EDM4U with your plugin, you **must** follow the - import steps in the [Getting Started](#getting-started) section! - - 2. Copy and rename the - [SampleRegistries.xml](https://github.com/googlesamples/unity-jar-resolver/blob/master/sample/Assets/ExternalDependencyManager/Editor/sample/Assets/ExternalDependencyManager/Editor/SampleRegistries.xml) - file into your plugin and add the registries your plugin requires. - - The XML file just needs to be under an `Editor` directory and match the - name `*Registries.xml` or labeled with `gumpr_registries`. For example, - `MyPlugin/Editor/MyPluginRegistries.xml`. - - 3. Follow the steps in the [Getting Started](#getting-started) - section when you are exporting your plugin package. - -For example, to add a registry for plugins in the scope `com.coolstuff`: - -``` - - - - 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 Usage* 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 Usage - -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) for the 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. - -# Building from Source - -To build this plugin from source you need the following tools installed: - * Unity (with iOS and Android modules installed) - -You can build the plugin by running the following from your shell -(Linux / OSX): - -``` -./gradlew build -``` - -or Windows: - -``` -./gradlew.bat build -``` - -# 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 deleted file mode 100644 index 4ad8e77..0000000 --- a/Assets/ExternalDependencyManager/Editor/README.md.meta +++ /dev/null @@ -1,12 +0,0 @@ -fileFormatVersion: 2 -guid: af375ab7a7be496495fce13d2f5d8f21 -labels: -- gvh -- gvh_version-1.2.172 -- gvhp_exportpath-ExternalDependencyManager/Editor/README.md -timeCreated: 1584567712 -licenseType: Pro -TextScriptImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.172_manifest.txt b/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.172_manifest.txt deleted file mode 100644 index 26d5215..0000000 --- a/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.172_manifest.txt +++ /dev/null @@ -1,13 +0,0 @@ -Assets/ExternalDependencyManager/Editor/1.2.172/Google.IOSResolver.dll -Assets/ExternalDependencyManager/Editor/1.2.172/Google.IOSResolver.dll.mdb -Assets/ExternalDependencyManager/Editor/1.2.172/Google.JarResolver.dll -Assets/ExternalDependencyManager/Editor/1.2.172/Google.JarResolver.dll.mdb -Assets/ExternalDependencyManager/Editor/1.2.172/Google.PackageManagerResolver.dll -Assets/ExternalDependencyManager/Editor/1.2.172/Google.PackageManagerResolver.dll.mdb -Assets/ExternalDependencyManager/Editor/1.2.172/Google.VersionHandlerImpl.dll -Assets/ExternalDependencyManager/Editor/1.2.172/Google.VersionHandlerImpl.dll.mdb -Assets/ExternalDependencyManager/Editor/CHANGELOG.md -Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll -Assets/ExternalDependencyManager/Editor/Google.VersionHandler.dll.mdb -Assets/ExternalDependencyManager/Editor/LICENSE -Assets/ExternalDependencyManager/Editor/README.md diff --git a/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.172_manifest.txt.meta b/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.172_manifest.txt.meta deleted file mode 100644 index 9e3875f..0000000 --- a/Assets/ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.172_manifest.txt.meta +++ /dev/null @@ -1,15 +0,0 @@ -fileFormatVersion: 2 -guid: c1e59794c1de46afb29f9f464cc726c1 -labels: -- gvh -- gvh_manifest -- gvh_version-1.2.172 -- gvhp_exportpath-ExternalDependencyManager/Editor/external-dependency-manager_version-1.2.172_manifest.txt -- gvhp_manifestname-0External Dependency Manager -- gvhp_manifestname-play-services-resolver -timeCreated: 1474401009 -licenseType: Pro -TextScriptImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/PlayServicesResolver/Editor.meta b/Assets/PlayServicesResolver/Editor.meta deleted file mode 100644 index c762a04..0000000 --- a/Assets/PlayServicesResolver/Editor.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: d73ad19643e42464782075c8903e0059 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/PlayServicesResolver/Editor/play-services-resolver_v1.2.137.0.txt b/Assets/PlayServicesResolver/Editor/play-services-resolver_v1.2.137.0.txt deleted file mode 100644 index a0268fc..0000000 --- a/Assets/PlayServicesResolver/Editor/play-services-resolver_v1.2.137.0.txt +++ /dev/null @@ -1,2 +0,0 @@ -Assets/PlayServicesResolver/Editor/Google.VersionHandler.dll -Assets/PlayServicesResolver/Editor/Google.VersionHandler.dll.mdb diff --git a/Assets/PlayServicesResolver/Editor/play-services-resolver_v1.2.137.0.txt.meta b/Assets/PlayServicesResolver/Editor/play-services-resolver_v1.2.137.0.txt.meta deleted file mode 100644 index 45ca7bc..0000000 --- a/Assets/PlayServicesResolver/Editor/play-services-resolver_v1.2.137.0.txt.meta +++ /dev/null @@ -1,14 +0,0 @@ -fileFormatVersion: 2 -guid: ba6f911c6f9d4d9ea269756e9dafb641 -labels: -- gvh -- gvh_manifest -- gvh_version-1.2.137.0 -- gvh_version-1.2.172 -- gvhp_exportpath-PlayServicesResolver/Editor/play-services-resolver_v1.2.137.0.txt -timeCreated: 1474401009 -licenseType: Pro -TextScriptImporter: - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.cs b/Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.cs index a3d9b43..5ed4c6f 100644 --- a/Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.cs +++ b/Assets/Smartlook/SmartlookAnalytics/Scripts/Smartlook.cs @@ -40,7 +40,7 @@ public SL_COMPATIBILITY_NAME(string value) public class SetupOptionsBuilder { protected string ApiKey { get; set; } - protected int Fps { get; set; }; + protected int Fps { get; set; } protected bool StartNewSession { get; set; } = false; protected bool StartNewSessionAndUser { get; set; } = false; diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework.meta b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework.meta new file mode 100644 index 0000000..9343de7 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework.meta @@ -0,0 +1,28 @@ +fileFormatVersion: 2 +guid: a581636eb3a1e804ebc605a4a9556f84 +folderAsset: yes +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ExternalDependencyManager.meta b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Headers.meta similarity index 77% rename from Assets/ExternalDependencyManager.meta rename to Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Headers.meta index 68b3a0c..d483785 100644 --- a/Assets/ExternalDependencyManager.meta +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Headers.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 541bb7210bb167847b982aefd2a02b64 +guid: 8992914d4f723479ba1e7bfd404beb5f folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Headers/Smartlook.h.meta b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Headers/Smartlook.h.meta new file mode 100644 index 0000000..caf60f6 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Headers/Smartlook.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: db591cedcadfa4c51a55a3a723cdbf18 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Headers/SmartlookCBridge.h.meta b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Headers/SmartlookCBridge.h.meta new file mode 100644 index 0000000..c2b426b --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Headers/SmartlookCBridge.h.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 78be3ae1d2d3c4fc28ff43c7b4bf157b +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Info.plist.meta b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Info.plist.meta new file mode 100644 index 0000000..3fabe44 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Info.plist.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 56836a7bb31cb4b8d96c6d9623680686 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ExternalDependencyManager/Editor.meta b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules.meta similarity index 77% rename from Assets/ExternalDependencyManager/Editor.meta rename to Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules.meta index 02e886b..105f324 100644 --- a/Assets/ExternalDependencyManager/Editor.meta +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 047e5e79b9816844d9873c9f1692f526 +guid: 13a27533877a34c729352efcbf2729ab folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/ExternalDependencyManager/Editor/1.2.172.meta b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule.meta similarity index 77% rename from Assets/ExternalDependencyManager/Editor/1.2.172.meta rename to Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule.meta index a8c7f93..a267319 100644 --- a/Assets/ExternalDependencyManager/Editor/1.2.172.meta +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 5e2452c577c315e4c8365ac6f1c981e3 +guid: 401eb6ce6729c42718c8cd83a2548008 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/PlayServicesResolver.meta b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/Project.meta similarity index 77% rename from Assets/PlayServicesResolver.meta rename to Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/Project.meta index 572f231..e2e6196 100644 --- a/Assets/PlayServicesResolver.meta +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/Project.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: d9ac24e0761b2a542b016cf71c36605f +guid: d159e321762b54ca08a3037c22021c27 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo.meta b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo.meta new file mode 100644 index 0000000..3fe4d2d --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9d791e3bce62e436b86945c27ef07faf +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/Project/armv7-apple-ios.swiftsourceinfo.meta b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/Project/armv7-apple-ios.swiftsourceinfo.meta new file mode 100644 index 0000000..eb01b6f --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/Project/armv7-apple-ios.swiftsourceinfo.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b1a6e0c3622e94b9bb3a3c77b8c8e29f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftdoc.meta b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftdoc.meta new file mode 100644 index 0000000..6d2ce53 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftdoc.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b57a1276c6f594196bfb1c0e1bb822ec +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftinterface.meta b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftinterface.meta new file mode 100644 index 0000000..1035178 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftinterface.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fef0629c49fd74b2c94a059d4185646a +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftmodule.meta b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftmodule.meta new file mode 100644 index 0000000..8990f0c --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/arm64-apple-ios.swiftmodule.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ad109aa71aeb341988ec89819eb79fb7 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftdoc.meta b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftdoc.meta new file mode 100644 index 0000000..8d6d41a --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftdoc.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0d48e0c5e992f4baa95d03b63ff34425 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftinterface.meta b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftinterface.meta new file mode 100644 index 0000000..182ecef --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftinterface.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a309d70fea6e24c6cb78ab5433e1b79f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftmodule.meta b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftmodule.meta new file mode 100644 index 0000000..f4f76d2 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/Smartlook.swiftmodule/armv7-apple-ios.swiftmodule.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 20236910ed4764100939585c1f96a613 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/module.modulemap.meta b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/module.modulemap.meta new file mode 100644 index 0000000..45d354a --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Modules/module.modulemap.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 70b8e6279c3454c0081e5b0ab337957c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Smartlook.meta b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Smartlook.meta new file mode 100644 index 0000000..54b3c28 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/Smartlook.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b5ba5ea31dc6f489eb86cd62551c7bfe +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/_CodeSignature.meta b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/_CodeSignature.meta new file mode 100644 index 0000000..32356d1 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/_CodeSignature.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ffd1c126a21c5423e975b777591d6e37 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/_CodeSignature/CodeResources.meta b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/_CodeSignature/CodeResources.meta new file mode 100644 index 0000000..5a44f96 --- /dev/null +++ b/Assets/Smartlook/SmartlookAnalytics/iOS/Smartlook.framework/_CodeSignature/CodeResources.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a40b273e32fb149b0a4d30ffe0b2331e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: