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 you 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` 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
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Dual Control 双控Unity迷你赛车超休闲小游戏项目源码C# 支持Unity版本2018.3.5f1及以上 控制汽车并尝试到达终点线。 容易玩,很难掌握。 商品描述 控制双边赛车汽车并尝试到达终点线。 容易上手,很难掌握。 特征 团结2018 64位 50 个关卡 关卡制作者 3 个控制 |按钮|操纵杆|操舵 Admob 横幅和插页式广告 完整菜单 热门超休闲游戏
资源推荐
资源详情
资源评论
收起资源包目录
Dual Control 双控Unity迷你赛车超休闲小游戏项目源码C# (2000个子文件)
a187246822bbb47529482707f3e0eff8 4KB
com.google.android.gms.play-services-ads-19.3.0.aar 2.73MB
com.google.android.gms.play-services-ads-lite-19.3.0.aar 850KB
androidx.core.core-1.0.0.aar 618KB
com.google.android.gms.play-services-basement-17.0.0.aar 271KB
com.google.android.gms.play-services-measurement-base-17.1.0.aar 221KB
com.google.android.gms.play-services-gass-19.3.0.aar 165KB
androidx.fragment.fragment-1.0.0.aar 153KB
googlemobileads-unity.aar 77KB
androidx.browser.browser-1.0.0.aar 61KB
androidx.viewpager.viewpager-1.0.0.aar 52KB
androidx.coordinatorlayout.coordinatorlayout-1.0.0.aar 43KB
com.google.android.gms.play-services-measurement-sdk-api-17.1.0.aar 42KB
com.google.android.gms.play-services-tasks-17.0.0.aar 39KB
androidx.loader.loader-1.0.0.aar 33KB
androidx.customview.customview-1.0.0.aar 32KB
androidx.swiperefreshlayout.swiperefreshlayout-1.0.0.aar 32KB
androidx.drawerlayout.drawerlayout-1.0.0.aar 32KB
androidx.versionedparcelable.versionedparcelable-1.0.0.aar 27KB
androidx.slidingpanelayout.slidingpanelayout-1.0.0.aar 23KB
com.google.android.gms.play-services-ads-identifier-17.0.0.aar 17KB
androidx.print.print-1.0.0.aar 15KB
androidx.legacy.legacy-support-core-ui-1.0.0.aar 11KB
androidx.documentfile.documentfile-1.0.0.aar 11KB
androidx.cursoradapter.cursoradapter-1.0.0.aar 10KB
androidx.lifecycle.lifecycle-livedata-2.0.0.aar 9KB
androidx.lifecycle.lifecycle-runtime-2.0.0.aar 9KB
androidx.lifecycle.lifecycle-livedata-core-2.0.0.aar 8KB
com.google.android.gms.play-services-ads-base-19.3.0.aar 8KB
androidx.asynclayoutinflater.asynclayoutinflater-1.0.0.aar 8KB
androidx.interpolator.interpolator-1.0.0.aar 7KB
androidx.localbroadcastmanager.localbroadcastmanager-1.0.0.aar 7KB
androidx.lifecycle.lifecycle-viewmodel-2.0.0.aar 7KB
androidx.arch.core.core-runtime-2.0.0.aar 5KB
androidx.legacy.legacy-support-core-utils-1.0.0.aar 4KB
Android_2020_11_13_05_34_20.ahbuildinfo 44KB
Car_6C.anim 60KB
Car_9A.anim 38KB
Rotating_Camera.anim 5KB
Car_4A.anim 5KB
SimpleInput.Editor.asmdef 383B
GoogleMobileAds.Editor.asmdef 172B
GoogleMobileAds.asmdef 112B
SimpleInput.Runtime.asmdef 41B
ProjectSettings.asset 19KB
QualitySettings.asset 6KB
InputManager.asset 6KB
EditorUserBuildSettings.asset 5KB
GraphicsSettings.asset 2KB
Physics2DSettings.asset 1KB
NavMeshAreas.asset 1KB
DynamicsManager.asset 1KB
UnityConnectSettings.asset 853B
PresetManager.asset 824B
EditorSettings.asset 643B
GoogleMobileAdsSettings.asset 563B
EditorBuildSettings.asset 438B
TagManager.asset 419B
AudioManager.asset 377B
VFXManager.asset 273B
TimeManager.asset 195B
NetworkManager.asset 159B
ClusterInputManager.asset 120B
sharedassets2.assets 28.21MB
sharedassets1.assets 4.05MB
sharedassets0.assets 1.9MB
globalgamemanagers.assets 51KB
bb743aa91092b524abe0b6334d3912c6 4KB
d729d6acfa7f28d0939d6995f9eb2f84.bin 25KB
0212588b13a51dbd0479d1832f9b8dce.bin 23KB
0f429d4abf73c69fcd3f79e7b478e673.bin 20KB
dbb2bc61f075cb0601e500ef0a8cf3e4.bin 13KB
d768c75d172084c72f27e40594a7b83b.bin 13KB
db163456161f4d7e0885fbc3dcff27fb.bin 13KB
d85666ae749b47931361eb11d28a006c.bin 13KB
dd2681e78ff47cac749c7fc71c0891f2.bin 13KB
da8a6e60f00471f551f739e7661908ed.bin 13KB
dd1101f85955213a5dbfb5e46e4fe82f.bin 13KB
db48f9e7f21489502dfb9f571e683e5e.bin 12KB
d70c6a348096dda2cb665ae11063d55b.bin 12KB
d8cb06989914378ecb2a3608beb44ac1.bin 12KB
d5cd2fb1756117ee650bacf4168425ca.bin 12KB
d8b2481dccd45c194dba70a2d635fa47.bin 11KB
d4ebbb683911d205d2680990fc216b14.bin 11KB
0a8738edbce00b504c0baad3a839c1eb.bin 11KB
0f0397673b9ce2694cff72b8c477c19c.bin 11KB
d6df773e82a3b3e29af30461b8bce216.bin 11KB
0aba8b58f47861f9e7de42478cc3c7cb.bin 11KB
d658a834f6edb87d0186da69ca643285.bin 11KB
d92836a9721377536eb2c6df77182524.bin 11KB
de900ddd4aceab91c559fd4eeec058be.bin 11KB
dd9ce0039b3dcfc3a2663cbb2844775e.bin 11KB
d8092e8f1b520df6f9ffae2d9cda2d23.bin 11KB
d25f51c14c816a39189fea36ec56c38e.bin 11KB
d6fc2489007238a393ac144b2d6441bc.bin 11KB
d2282ebec1db2901c8bcf51c8c26a718.bin 11KB
de2e69315b38d7126b001b28083ae5d9.bin 11KB
d8b5e0cd6b3b48b0fa6c31dd0c290ce7.bin 11KB
d5d883297d05c07bfc018f9fb25f6587.bin 11KB
0928c94cabaf3fbb8a325ae9931a4081.bin 10KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
小云同志你好
- 粉丝: 1051
- 资源: 1001
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Data$distriLecturer.class
- SECS移动解决方案 SECS如何实现扫码功能 SECS安卓APP SECS PDA应用 安卓版本SECS协议应用
- tuxiangsunajisjkN;SDN
- Linux:开源之光的发展历程与未来展望
- C++Qt操作Lotus Domino数据库 Lotus Domino C++连接Lotus Domino C++开发lotus
- Linux 操作系统提供了很多命令来进行系统管理、文件操作、网络设置等各种任务
- MySQL是一种广泛使用的关系型数据库管理系统
- MySQL是一种广泛使用的关系型数据库管理系统
- MySQL是一种广泛使用的关系型数据库管理系统
- test02_060523129_何梦颖.cpp
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功