Reputation: 143
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
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
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