android - Firebase Unity SDK 找不到 Firebase Android 资源生成所需的命令行工具 python

标签 android firebase unity3d

使用 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)
我尝试运行 python "/Users/xxx/Documents/unity-project/Assets/Firebase/Editor/generate_xml_from_google_services_json.py" -i "Assets/Firebase/GoogleService-Info.plist" -l --plist在 shell 中,它成功输出了我的应用程序的包 ID com.myapp.bundle我也尝试重新导入firebase sdk,重新启动unity,重新启动mac,但它们都没有解决问题。
我搜索了类似的问题,但不幸的是没有找到解决方案。
在出现此错误之前我做了一些事情:我将 macOS 升级到了最新的 Monterey 12.3。不确定这是否相关。
我会很感激一些帮助。变得非常绝望,我整天都在做这个。

最佳答案

这是由于 MacOS 12.3 删除了 Python2。不幸的是,我目前没有任何解决方法。我尝试将 Python3 符号链接(symbolic link)到/usr/local/bin (确保它在您的 PATH 上)并且在终端中运行良好,但由于某种原因 Unity/Firebase 仍然无法访问它。我还尝试启动到恢复模式并禁用 SIP,但您仍然无法符号链接(symbolic link)到/usr/bin,因为它现在在蒙特雷(我认为是大苏尔)中是只读的。我在这个问题上添加了一些注释 - https://github.com/firebase/firebase-unity-sdk/issues/154并且可能还会发布到 Unity 论坛/错误跟踪器,因为我不确定问题是在 Firebase SDK 中还是在 Unity 本身中。

关于android - Firebase Unity SDK 找不到 Firebase Android 资源生成所需的命令行工具 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70983194/

相关文章:

Android:如何扭曲图像?

android - 在 Android 库项目中使用 Firebase 云消息传递

java - 新 Android 应用程序的提示 - map 、路线、交通

javascript - 获取 firestore 文档的新 ID 以将其添加到文档本身

firebase - 新的 Firebase Firestore DocumentDb 如何对大型子集合建模

c# - 如何阻止我的角色离开屏幕?

覆盆子上的 Android things - 从 firebase 发送推送通知

ios - 从firebase存储中快速上传人物图像

unity3d - Unity WebClient SSL 超时

c# - 在 Visual Studio Code for Unity 中安装 Nuget 包