googlesamples / unity-jar-resolver

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

[BUG] Unable to resolve reference 'UnityEditor.iOS.Extensions.Xcode' on Windows #412

Open DominatorDuck opened 3 years ago

DominatorDuck commented 3 years ago

[REQUIRED] Please fill in the following fields:

[REQUIRED] Please describe the issue here:

Given a vanilla 3D project in Unity 2020.1.11f1, upon pressing play I get the following error log:

Assembly 'Packages/com.google.external-dependency-manager/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.161.dll' will not be loaded due to errors:
Unable to resolve reference 'UnityEditor.iOS.Extensions.Xcode'. Is the assembly missing or incompatible with the current platform?
Reference validation can be disabled in the Plugin Inspector.

Steps to reproduce:

Notes:

Please answer the following, if applicable:

What's the issue repro rate? 100%

What happened? How can we make the problem occur?

The Assembly 'Packages/com.google.external-dependency-manager/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.161.dll' fails to load.

You can reproduce the issue by following the repro steps with the proper Unity installation by using this sample project: https://drive.google.com/file/d/1llavcZxSVk7icuCpLv65QPrnjgV81u93/view?usp=sharing

google-oss-bot commented 3 years ago

This issue does not have all the information required by the template. Looks like you forgot to fill out some sections. Please update the issue with more information.

arcv commented 3 years ago

For quick fix, you can install "iOS Build Support" module from Unity Hub. That fixes the issue.

google-oss-bot commented 3 years ago

Hey @DominatorDuck. We need more information to resolve this issue but there hasn't been an update in 5 weekdays. I'm marking the issue as stale and if there are no new updates in the next 5 days I will close it automatically.

If you have more information that will help us get to the bottom of this, just add a comment!

DominatorDuck commented 3 years ago

Thanks for the comment, @arcv, that certainly works as a temporary fix. @cynthiajoan, I noticed you marked the tread as in need of info, can you please let me know what info I can provide to help solve the issue.

vimanyu commented 3 years ago

Hi @DominatorDuck, Thanks for raising this issue. Newer versions of Unity have stricter checks on inspecting dependent libraries and that is why you are noticing this in Unity 2020. Does this error block the build altogether?

I am flagging this as a bug for us to follow on.

DominatorDuck commented 3 years ago

Hi @vimanyu. Thanks for coming back on this. The error does not block the build, it just appears every time you build or run the game - so it shows up often enough, but it's not of the breaking stuff variety. Other than the error being logged, nothing else seems to be broken or affected.

vimanyu commented 3 years ago

Good to know that it is not blocking or breaking anything. Yes, we will take a look at ways to avoid this error.

wimachtendink commented 3 years ago

Hello,

(apologies in advance if this is not helpful)

It seems like this issue is resolved by deselecting all of the "select platform for plugin" options on [maybe some combination of, but I chose] all firebase DLL assets in the ExternalDependencyManager folder and Firebase>Plugins>iOS folder

PeachieDude commented 3 years ago

Hi, i happened to have the same problem today.. made unity upgrade and after relaunching i got the same error, the only difference is the version of IOSResolver, your one is _v1.2.161.dll and mine is _v1.2.163.. Interesting to point is that i dont use IOS, in fact i didnt even import it. Im using Android, like ever. And im like, why the hell im having an IOS resolver problem if i never used, never installed nor activated it..

copied from stackoverflow "Firebase Messaging work fine on Unity 2020. But just Push Notification doesn't work on Unity 2020. I contacted Firebase team and they answered me Unity 2020 is broken with firebase. ( no receive token for push notification) – Cyrille Mouret Aug 18 '20 at 10:40"

rameezfayyaz commented 3 years ago

If you are not planning on using IOS platform resolver just change the "Scripting Backend" in "Project Settings -> Player -> Configuration" to "MONO" from "IL2CPP" and the error should go away. This worked for me.

soundmartell commented 2 years ago

Hello, as @arcv said if you have not "iOS Build Support" installed you will have this error bothering you often enough. In my case I could not compile the Game, some errors appeared as well.
If I disable the Validate Reference in Google.IOSResolver_v1.2.165 the error doesnt show but still not able to compile. I did not try MONO as @rameezfayyaz because Google is not supporting 32 bits APP. 64 Bits only support IL2CPP. THE ONLY SOLUTION FOR NOW: Using the Unity Hub Add modules iOS Build support.

TrongHieu90 commented 2 years ago

@vimanyu Has this been fixed yet ? Im using Unity 2020 LTS version and this issue still happens

noemis84 commented 2 years ago

I'm using 2020.3.19 and Extension 1.27.0 and still get this error: Assembly 'Packages/com.google.ar.core.arfoundation.extensions/Editor/ExternalDependencyManager/Editor/Google.IOSResolver_v1.2.162.dll' will not be loaded due to errors: Unable to resolve reference 'UnityEditor.iOS.Extensions.Xcode'. Is the assembly missing or incompatible with the current platform? Reference validation can be disabled in the Plugin Inspector.

I will install ios modules even if not dev for ios.

jvrieling commented 2 years ago

I am using Unity 2020.3.16 and was getting this error. I'm not releasing on iOS, but installing the modules seems to have fixed the error. Thanks, @soundmartell !

fararugames commented 2 years ago

I updated the project from 2019 to 2020, the IOS module was connected for 2019, but not for 2020. After the update, this error appeared.

This advice helped solve the issue. Thanks

For quick fix, you can install "iOS Build Support" module from Unity Hub. That fixes the issue.

astyd256 commented 2 years ago

Still have the same bug. It's quite sad that i have to use my low space on ssd for this sh#t.

Zarkend commented 2 years ago

Still happening, fix is to install iOS Build Support

genin43 commented 2 years ago

Why can't you just fix this bug?

NotBugGreg commented 2 years ago

It still happens in new unity versions!

binouze commented 2 years ago

Hi, No need to install iOS Build support, just uncheck the "Validate References" checkbox in the plugin inspector.

sjnilan commented 2 years ago

2021.3.4f1 also have the issue. I found it today.

BenjaminSimsMK commented 1 year ago

Happens in 2021.3.3f1. We have a lot of non programmers on our project who use Unity frequently. Having to get them to install Android -and- iOS support which they will never need, just to avoid this error, is really annoying.

Installing modules we do not need is not a solution, especially considering we're not running the dependency manager outside of builds.

PatrionDigital commented 1 year ago

Installing modules we do not need is not a solution, especially considering we're not running the dependency manager outside of builds.

I want to second this. I just installed the GameAnalytics SDK for a WebGL build. No intention of deploying on iOS or Android for this particular project, so this "fix" is just not good enough.

ahmedaniss25 commented 1 year ago

problem fixed here: https://youtu.be/z4ERv0oLJXc

somedeveloper00 commented 1 year ago

@ahmedaniss25 this workaround has already been mentioned by @arcv about 2 years ago on this very topic https://github.com/googlesamples/unity-jar-resolver/issues/412#issuecomment-724243829

firesightstudios commented 1 year ago

still an issue on 2022.3.0.

I develop on my desktop PC and build android with it, so all I install on this pc is android support.

Then I open my macbook and pull down the project and just install ios support.

firesightstudios commented 1 year ago

Hi, No need to install iOS Build support, just uncheck the "Validate References" checkbox in the plugin inspector.

The problem with this is when you save in one project and push to source, you have to remember to enable it every time when pulling down on ios.

CaseyHofland commented 9 months ago

I'm going to uncheck "validate references".

However, for the Google team, this is very easy to fix on your end. All you need is to create a folder (call it IOS) in which you put the IOSResolver, as well as an assembly definition with only IOS checked.

Platforms

This will make sure to only compile the IOSResolver if you are working with IOS.

nndwn commented 5 months ago

image uncheck all general

https://docs.unity3d.com/Manual/PluginInspector.html

somedeveloper00 commented 5 months ago

image uncheck all general

https://docs.unity3d.com/Manual/PluginInspector.html

I wouldn't modify the sdk files directly, because then it'd become a task which you and next developers will have to do for every update. A task like that is easy to miss. Howevrr if installing iOS module is impossible for some machines, then yeah

Zamaroht commented 4 months ago

Hello!

In case it's useful for anyone browsing and landing in this page, I was having a crash on Android at startup with Firebase and Crashlytics installed. Logcat was telling me that "Crashlytics build ID is missing", and I noticed that the "FirebaseCrashlytics.androidlib" folder that's generated automatically at build time in my desktop machine was not getting generated in CI.

The build log had the following errors:

Assembly 'Packages/com.splabs.base.google-package-manager/ExternalDependencyManager/Editor/1.2.179/Google.IOSResolver.dll' will not be loaded due to errors:
Unable to resolve reference 'UnityEditor.iOS.Extensions.Xcode'. Is the assembly missing or incompatible with the current platform?
Reference validation can be disabled in the Plugin Inspector.
Assembly 'Packages/com.splabs.base.firebase/Firebase/Editor/Firebase.Crashlytics.Editor.dll' will not be loaded due to errors:
Unable to resolve reference 'UnityEditor.iOS.Extensions.Xcode'. Is the assembly missing or incompatible with the current platform?
Reference validation can be disabled in the Plugin Inspector.
Symbol file LoadedFromMemory is not a mono symbol file
Assembly 'Packages/com.splabs.base.firebase/Firebase/Editor/Firebase.Editor.dll' will not be loaded due to errors:
Unable to resolve reference 'UnityEditor.iOS.Extensions.Xcode'. Is the assembly missing or incompatible with the current platform?
Reference validation can be disabled in the Plugin Inspector.

Turns out that the Firebase.Editor.dll and Firebase.Crashlytics.Editor.dll files are in charge of auto-generating the FirebaseCrashlytics.androidlib folder at build time.

Also, I'm using the UnityCI docker images, and the android docker images in particular do not have iOS Build Support installed.

As suggested in this issue, unselecting the "Validate References" checkboxes from both Firebase.Editor.dll and Firebase.Crashlytics.Editor.dll files solved the issue in CI for me, now everything is generated correctly.

TigerHix commented 3 months ago

Still having this issue in 2024. Can't believe such a trivial issue can take more than 4 years to fix. @CaseyHofland has already provided a solution, and the maintainers literally just needed to create an .asmdef file that take maybe 2 minutes.

PTSY-17031999 commented 2 months ago

image uncheck all general

https://docs.unity3d.com/Manual/PluginInspector.html

Thank you, this method works for me but the app cannot run

chriscode2001 commented 1 month ago

Yes, load of rubbish. Install IOS stuff, for NO reason. Fix it!

chriscode2001 commented 1 month ago

I turned off validate, but come on, really

somedeveloper00 commented 3 weeks ago

how is this issue still not fixed??? it's been 4 years, and all it takes is to wrap the iOS stuff in a #if

demiursos commented 3 weeks ago

Since I only build Android, I deleted all iOS-related files and the problem was resolved. It's so easy.