Description
[REQUIRED] Please fill in the following fields:
- Unity editor version: Issue occurred with
2021.1.11
,2021.1.12
(Works with2021.1.10
and2021.2.0
) - External Dependency Manager version: Tried
1.2.160
and1.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 2021.2.0 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.dll
toAssets/ExternalDependencyManager/Editor/Google.IOSResolver.dll
- Rename
Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.165.dll.meta
toAssets/ExternalDependencyManager/Editor/Google.IOSResolver.dll.meta
- Rename
Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.165.dll.mdb
toAssets/ExternalDependencyManager/Editor/Google.IOSResolver.dll.mdb
- Rename
Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.165.dll.mdb.meta
toAssets/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.
Activity
chkuang-g commentedon Jun 22, 2021
Since this is a Unity issue, the only possible workaround we can provide is to export iOS Resolver library as
Assets/ExternalDependencyManager/Editor/Google.IOSResolver.dll
. However, as mentioned in the original posts, Version Handler will not be able to remove obsolete libraries automatically. However, this will work if EDM4U is installed through.tgz
format.May need to explore other potential workaround.
[-][Bug] iOSResolver.dll failed to load with Unity 2021.1.11+ on Mac[/-][+][Known Issue] iOSResolver.dll failed to load with Unity 2021.1.11+ on Mac[/+]chkuang-g commentedon Jun 22, 2021
Update: The issue does NOT occur with Unity
2021.2.0b1
patm1987 commentedon Jun 23, 2021
I am seeing this on Windows with 2021.2.0b1 (installed via Unity Hub) with EDM4U (v1.2.162 installed via the play games plugin).
The suggested workaround does work for me.
I am using Windows 10 (21H1) and my project is on an exFAT file system rather than NTFS.
Goncharuk-Nikita commentedon Jun 24, 2021
+1 also has this issue.
but 2021.2.0b1 does not work for me with Firebase and Facebook SDK.
I downgrade to 2021.1.10.
Barokoli commentedon Jun 30, 2021
+1 also had this issue on 2021.2.0b1
Mac Book M1
Workaround fixed it
joaquingrech commentedon Jun 30, 2021
I´ve just downloaded 166 hoping this was fixed... still same issue
Assembly 'Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.166.dll' will not be loaded due to errors:
Assembly name 'Google.IOSResolver' does not match file name 'Google.IOSResolver_v1.2.166'
gamefish commentedon Jul 2, 2021
+1 also has this issue.
waiting for the fix.
do not want to try workaround yet because we are develop under android, will be a few month later to release on iOS
chkuang-g commentedon Jul 7, 2021
Public Issue Tracker from Unity.
https://issuetracker.unity3d.com/issues/only-some-assemblies-fail-to-be-loaded-when-assembly-name-does-not-match-the-file-name
itsarjunsinh commentedon Jul 20, 2021
@chkuang-g Could adding a version code variable inside the dll be a solution? It's a shot in the dark, but I suppose you can then adhere to new naming conventions and still allow the version handler to manage files.
A fix for this would be great. Renaming files is particularly tedious for me since I use tarballs for dependencies. I've added a duplicate EDM via Unity package for now.
LaCreArthur commentedon Jul 26, 2021
Renaming the file manually did the trick, thanks, but it should not be that way
Thaina commentedon Sep 7, 2021
Are there any progress on this? What is the actual solution that will came out in future release? Is it the problem of unity itself or this google repo?
It seem this problem would affect firebase and facebook (and any other library depend on EDM4U) as well. And so we can't update to 2021.2b
31 remaining items