googlesamples / unity-jar-resolver

Unity plugin which resolves Android & iOS dependencies and performs version management
Other
1.25k stars 343 forks source link

[Bug] External Dependency Manager not loaded in Unity 2021.2.3 #477

Closed toxikman closed 2 years ago

toxikman commented 2 years ago

Testing this same setup in 2020.3.23 LTS (Intel) works fine, so it's almost as if the dll's in EDM4U aren't compatible with the native M1 Unity editor.

google-oss-bot commented 2 years ago

This issue does not seem to follow the issue template. Make sure you provide all the required information.

paulinon commented 2 years ago

Thanks for reporting this, @toxikman. Could you try if removing and reimporting your SDKs makes a difference? This worked for the developer in #475

toxikman commented 2 years ago

I tried removing and reimporting all Google packages (including EDM4U) as well as deleting the project Library folder contents (which causes Unity to reimport everything) and neither one allows the EDM menu to appear. Removing Google Play Game Services folder in Assets also didn't help.

toxikman commented 2 years ago

As a test, I created a new empty 2D Unity project and then added the EDM 1.2.167 package from the tgz tarball file. The menu did not appear.

mirlix commented 2 years ago

I have the same issue in a clean new project, the menu is missing. Doing the same in 2019 works and the menu is visible.

paulinon commented 2 years ago

Hi folks,

It seems that this is a bug that's affecting the latest version of the Unity editor.

I'll be marking this as a bug for now so that the team can investigate this. We'll be reaching out again once we have updates.

deetmo commented 2 years ago

It will work if you unpack tarball to Packages folder - as in development. Unity 2021.2.x have some bugs when using packages through tarballs.

As a workaround we are unpacking all packages directly inside Packages folder.

chkuang-g commented 2 years ago

@deetmo

TL;DR; The workaround you proposed would work. That is, if you need to install EDM4U through Unity Package Manager (UPM), instead of point to .tgz, unpack the tarball and point UPM to the package.json in that folder.

Unity stops supporting certain .meta format. Normally, Unity would attempts to modify it to the newer format. However, the files in the .tgz package is not modifiable.

For instance, for Google.JarResolver.dll.meta, Unity would attempt to modify it from the following:

PluginImporter:
  platformData:
    Editor:
      enabled: 1

to the following:

PluginImporter:
  platformData:
  - first:
      : 
    second:
      enabled: 0
      settings: {}
  - first:
      Editor: Editor
    second:
      enabled: 1
      settings:
        DefaultValueInitialized: true
  - first:
      Windows Store Apps: WindowsStoreApps
    second:
      enabled: 0
      settings:
        CPU: AnyCPU

One possible workaround, if you need to use .tgz format, is to unpack it, let the Unity modify the .meta file, then pack it back to .tgz again.

Let me see if we can distribute the package with .meta format that is compatible back to Unity 2017.

chkuang-g commented 2 years ago

BTW, I modified the title a bit. This does not seem to be M1 chip specific issue

toxikman commented 2 years ago

One possible workaround, if you need to use .tgz format, is to unpack it, let the Unity modify the .meta file, then pack it back to .tgz again.

Thanks for the suggestions, I'll try extracting the tgz and see. One issue with Unity 2021.2 that I noticed is that I can't use the "tar -czf" command on Mac to build a .tgz because Unity fails to install the resulting tarball. It only works if I use the UnityEditor.PackageManager.Client.Pack() API. Any workarounds would be appreciated.

kerembaydogan commented 2 years ago

@chkuang-g thanks for the fix. Is there a ETA for this fix? Are you planning a bug-fix release?

chkuang-g commented 2 years ago

Will be releasing a new version in a day or two.