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` and
`Assets/ExternalDependencyManager` directory.
没有合适的资源?快使用搜索试试~ 我知道了~
泡泡龙游戏(Unity2020.3.48f1)
共2000个文件
meta:911个
png:517个
h:89个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 167 浏览量
2024-04-16
12:45:28
上传
评论
收藏 136.15MB ZIP 举报
温馨提示
Unity游戏工程源码。使用Unity2020.3.48f1版本打开。 超级有趣的泡泡龙游戏。 游戏视频截图及更多游戏工程源码请访问我的主页博客“Unity3D休闲益智游戏工程源码大合集”,该工程仅供学习使用。
资源推荐
资源详情
资源评论
收起资源包目录
泡泡龙游戏(Unity2020.3.48f1) (2000个子文件)
Ani_setup_002.anim 27KB
Ani_setup_001.anim 24KB
Ani_touch_trail_01.anim 22KB
StarPop.anim 10KB
Grenade_PPLXX.anim 10KB
Shake.anim 6KB
StarIdle2.anim 5KB
StarIdle1.anim 5KB
StarIdle3.anim 4KB
smoke.anim 3KB
Enter1.anim 3KB
Enter2.anim 3KB
Enter3.anim 3KB
ProjectSettings.asset 24KB
QualitySettings.asset 7KB
InputManager.asset 6KB
GraphicsSettings.asset 3KB
Physics2DSettings.asset 2KB
NotificationsSettings.asset 1KB
NavMeshAreas.asset 1KB
DynamicsManager.asset 1KB
EditorSettings.asset 1KB
ziti-coom_SkeletonData.asset 1KB
shou_SkeletonData.asset 1016B
jy_SkeletonData.asset 940B
ksjs_SkeletonData.asset 940B
lb_SkeletonData.asset 940B
yd_SkeletonData.asset 938B
PackageManagerSettings.asset 901B
UnityConnectSettings.asset 887B
PresetManager.asset 824B
TagManager.asset 765B
FacebookSettings.asset 724B
ziti-coom_Atlas.asset 568B
shou_Atlas.asset 563B
ksjs_Atlas.asset 563B
jy_Atlas.asset 561B
lb_Atlas.asset 561B
yd_Atlas.asset 561B
EditorBuildSettings.asset 472B
AutoStreamingSettings.asset 400B
AudioManager.asset 377B
VFXManager.asset 284B
TimeManager.asset 204B
VersionControlSettings.asset 188B
XRSettings.asset 167B
NetworkManager.asset 159B
ClusterInputManager.asset 120B
mainTemplate.gradle.backup 2KB
TDNTPTypes.c 2KB
AVProVideoUnityRegisterRenderingPluginV5.c 818B
Star1.controller 4KB
CoinTaskItem.controller 4KB
Ani_setup_01.controller 3KB
ButtonLightFx.controller 2KB
smoke.controller 2KB
Grenade_PPLXX.controller 2KB
UnityExtensions.cs 7KB
CommonRemoteMgr.cs 6KB
ProgressBar.cs 5KB
PiggyBankBtn.cs 3KB
CashoutBtn.cs 3KB
AdjoeItem.cs 2KB
SmallPaymentMgr.cs 2KB
DiamondBtn.cs 2KB
ProgressStar.cs 1KB
CashButton.cs 1KB
AdjoeButton.cs 1018B
1f29aaa8.dds 341KB
Texture_WL94_td.dds 85KB
Texture_08ce35deGlow.dds 21KB
readme.doc 151KB
mainTemplate.gradle 1KB
AppsFlyerTracker.h 22KB
ThinkingAnalyticsSDK.h 14KB
TalkingData.h 10KB
MAUnityAdManager.h 8KB
ThinkingAnalyticsSDKPrivate.h 7KB
TTTracker+Game.h 5KB
TTTracker.h 5KB
TPURewardVideoManager.h 5KB
TPUOfferwallManager.h 4KB
TDConstant.h 4KB
TTInstallIDManager.h 4KB
TPUNativeManager.h 4KB
TPUInterstitialManager.h 3KB
TPUNativeBannerManager.h 3KB
TPUBannerManager.h 3KB
TTTrackerHeader.h 3KB
TDConfig.h 2KB
FBUnitySDKDelegate.h 2KB
TDSecurityPolicy.h 2KB
AppsFlyerCrossPromotionHelper.h 2KB
FBUnityUtility.h 2KB
AppsFlyerLinkGenerator.h 2KB
TDValidator.h 2KB
FBUnityInterface.h 2KB
TPUSDKManager.h 2KB
TDFile.h 2KB
FBSDK+Internal.h 2KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
- kanakanlll2024-06-25资源使用价值高,内容详实,给了我很多新想法,感谢大佬分享~
小程小程,永不消沉
- 粉丝: 1w+
- 资源: 44
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功