Skip to content

[Known Issue] iOSResolver.dll failed to load with Unity 2021.1.11+ on Mac #441

Closed
@chkuang-g

Description

@chkuang-g

[REQUIRED] Please fill in the following fields:

  • Unity editor version: Issue occurred with 2021.1.11, 2021.1.12 (Works with 2021.1.10 and 2021.2.0)
  • External Dependency Manager version: Tried 1.2.160 and 1.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 to Assets/ExternalDependencyManager/Editor/Google.IOSResolver.dll
  • Rename Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.165.dll.meta to Assets/ExternalDependencyManager/Editor/Google.IOSResolver.dll.meta
  • Rename Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.165.dll.mdb to Assets/ExternalDependencyManager/Editor/Google.IOSResolver.dll.mdb
  • Rename Assets/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.165.dll.mdb.meta to Assets/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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions