etleoking
etleoking

Reputation: 143

Firebase Unity SDK Unable to find command line tool python required for Firebase Android resource generation

I am getting this error while opening unity with firebase sdk 8.7.0.

Unable to find command line tool python required for Firebase Android resource generation.
python is required to generate the Firebase Android resource file google-services.xml from Assets/Firebase/GoogleService-Info.plist. Without Firebase Android resources, your app will fail to initialize.
python was distributed with each Firebase Unity SDK plugin, was it deleted?

System.ComponentModel.Win32Exception (0x80004005): ApplicationName='python', CommandLine='"/Users/xxx/Documents/unity-project/Assets/Firebase/Editor/generate_xml_from_google_services_json.py" -i "Assets/Firebase/GoogleService-Info.plist" -l --plist', CurrentDirectory='/Users/xxx/Documents/unity-project', Native error= mono-io-layer-error (2)
  at System.Diagnostics.Process.StartWithCreateProcess (System.Diagnostics.ProcessStartInfo startInfo) [0x002dc] in <0463b2ef957545c0a51b42f372cd4fbb>:0 
  at System.Diagnostics.Process.Start () [0x0003a] in <0463b2ef957545c0a51b42f372cd4fbb>:0 
  at (wrapper remoting-invoke-with-check) System.Diagnostics.Process.Start()
  at GooglePlayServices.CommandLine.RunViaShell (System.String toolPath, System.String arguments, System.String workingDirectory, System.Collections.Generic.Dictionary`2[TKey,TValue] envVars, GooglePlayServices.CommandLine+IOHandler ioHandler, System.Boolean useShellExecution, System.Boolean stdoutRedirectionInShellMode) [0x002dc] in Z:\tmp\tmp.cvthQg1D2s\third_party\unity\unity_jar_resolver\source\AndroidResolver\src\CommandLine.cs:631 
  at GooglePlayServices.CommandLine.Run (System.String toolPath, System.String arguments, System.String workingDirectory, System.Collections.Generic.Dictionary`2[TKey,TValue] envVars, GooglePlayServices.CommandLine+IOHandler ioHandler) [0x00000] in Z:\tmp\tmp.cvthQg1D2s\third_party\unity\unity_jar_resolver\source\AndroidResolver\src\CommandLine.cs:510 
  at Firebase.Editor.PythonExecutor.Run (System.Collections.Generic.IEnumerable`1[T] arguments, System.String workingDirectory, System.Collections.Generic.Dictionary`2[TKey,TValue] envVars, GooglePlayServices.CommandLine+IOHandler ioHandler) [0x00000] in Z:\tmp\tmp.dYyxJerQE9\firebase\app\client\unity\editor\src\PythonExecutor.cs:180 
  at Firebase.Editor.GenerateXmlFromGoogleServicesJson.RunResourceGenerator (System.Collections.Generic.IEnumerable`1[T] arguments, System.String inputPath, System.Boolean showCommandLine) [0x0001b] in Z:\tmp\tmp.dYyxJerQE9\firebase\app\client\unity\editor\src\GenerateXmlFromGoogleServicesJson.cs:521 
 #0 GetStacktrace(int)
 #1 DebugStringToFile(DebugStringToFileData const&)
 #2 DebugLogHandler_CUSTOM_Internal_Log(LogType, LogOption, ScriptingBackendNativeStringPtrOpaque*, ScriptingBackendNativeObjectPtrOpaque*)
 #3  (Mono JIT Code) (wrapper managed-to-native) UnityEngine.DebugLogHandler:Internal_Log (UnityEngine.LogType,UnityEngine.LogOption,string,UnityEngine.Object)
 #4  (Mono JIT Code) [Z:\tmp\tmp.dYyxJerQE9\firebase\app\client\unity\editor\src\GenerateXmlFromGoogleServicesJson.cs:407] Firebase.Editor.GenerateXmlFromGoogleServicesJson:ReadBundleIds (string)

I tried running python "/Users/xxx/Documents/unity-project/Assets/Firebase/Editor/generate_xml_from_google_services_json.py" -i "Assets/Firebase/GoogleService-Info.plist" -l --plist in shell and it successfully output my app's bundle id com.myapp.bundle

I also tried reimporting firebase sdk, restart unity, restart mac, but none of them solves the issue.

I searched similar issues but unfortunately found no solution.

Something I did before this error showed up: I upgraded macOS to the latest Monterey 12.3. Not sure if that is related.

I would appreciate some help. Getting pretty desperate, I've been on this all day long.

Upvotes: 9

Views: 11849

Answers (2)

etleoking
etleoking

Reputation: 143

An update:

If you are upgrading to the latest Unity 2021 LTS, under certain circumstances (mentioned in this thread https://github.com/firebase/quickstart-unity/issues/1228#issuecomment-1098892025) the python error would probably be suppressed and you will get the following error in the editor that cannot be cleared

Internal build system error. Backend exited with code 2.

If you are stuck by this error, you will have to patch with this 3rd party fix: https://github.com/techyworm10/firebase-unity-sdk-editor-python-fix

That solves the issue from my side.

Upvotes: 3

Dustin Kerstein
Dustin Kerstein

Reputation: 450

This is due to MacOS 12.3 removing Python2. Unfortunately I don't have any workarounds at the moment. I tried symlinking Python3 to /usr/local/bin (make sure it's on your PATH) and that works fine in the terminal, but for some reason Unity/Firebase still can't access it. I also tried booting into recover mode and disabling SIP, but you still can't symlink to /usr/bin as it's now Read Only in Monterey (and Big Sur I think). I added some notes to this issue - https://github.com/firebase/firebase-unity-sdk/issues/154 and will probably also post to the Unity forums / bug tracker as I'm not sure if the issue is in the Firebase SDK or in Unity itself.

Upvotes: 10

Related Questions