-
Notifications
You must be signed in to change notification settings - Fork 370
Description
[REQUIRED] Please fill in the following fields:
- Unity editor version: Issue occurred with
2021年1月11日,2021年1月12日(Works with2021年1月10日and202120) - External Dependency Manager version: Tried
1.2.160and1.2.165. But version is probably irrelevant here. - Source you installed EDM4U: .unitypackage
- Features in External Dependency Manager in use: iOS Resolver
- Plugins SDK in use: None
- Platform you are using the Unity editor on: Mac
[REQUIRED] Please describe the issue here:
(Please list the full steps to reproduce the issue. Include device logs, Unity logs, and stack traces if available.)
Please answer the following, if applicable:
What's the issue repro rate? 100%, even with empty project.
Issue Statement
iOS Resolver library cannot be loaded in Unity 2021年1月11日 and 2021年1月12日. (Did not test 202120 beta yet). It can be loaded properly with Unity 2021年1月10日.
After importing EDM4U, Unity logs an error like:
Assembly 'Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.165.dll' will not be loaded due to errors:
Assembly name 'Google.IOSResolver' does not match file name 'Google.IOSResolver_v1.2.165'
And iOS Resolver is not loaded, verified through the absence of Assets > External Dependency Manager > iOS Resolver menu item. The odd thing is that all the other libraries, ex. Android Resolver, Version Handler, are loaded with no issue.
The same issue has been reported on Unity forum here
This seems to be a regression introduced in Unity 2021年1月11日 as documented in the release note.
- Scripting: Editor logs an Error whenever the filename of an assembly does not match its name. (1109539)
Workaround
Since the issue is the mismatched library name, a simple workaround is to rename the dll file.
For instance,
- Rename
Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.165.dlltoAssets/ExternalDependencyManager/Editor/Google.IOSResolver.dll - Rename
Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.165.dll.metatoAssets/ExternalDependencyManager/Editor/Google.IOSResolver.dll.meta - Rename
Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.165.dll.mdbtoAssets/ExternalDependencyManager/Editor/Google.IOSResolver.dll.mdb - Rename
Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.165.dll.mdb.metatoAssets/ExternalDependencyManager/Editor/Google.IOSResolver.dll.mdb.meta
After the renaming, Unity should be able to load iOS Resolver library properly.
However, there is a caveat: After renaming, Version Handler will no longer able to manage those files. That is, when a newer version of EDM4U is installed, Version Handler will not be able to automatically remove the older version of iOS Resolver.
The workaround is to remove the entire folder of Assets/ExternalDependencyManager/ folder before upgrading.