Android Unity自动构建中的Google PlayResolver

Android Unity自动构建中的Google PlayResolver,android,firebase,unity3d,build,Android,Firebase,Unity3d,Build,我有一个包含我的游戏的存储库,里面是从.unitypackage导入的firebase messaging和analytics SDK,但我没有安装android依赖项(我猜是使用gradle下载解析程序的依赖项) 因此,在使用unity编辑器的正常流程中,play resolver将下载所需的依赖项并将它们放在我的项目中。如果我建造的一切都有效 问题是在自动构建中,我们通过执行自定义构建管道的命令行调用unity。在这种情况下,android依赖项不会被下载(play resolver dow

我有一个包含我的游戏的存储库,里面是从.unitypackage导入的firebase messaging和analytics SDK,但我没有安装android依赖项(我猜是使用gradle下载解析程序的依赖项)

因此,在使用unity编辑器的正常流程中,play resolver将下载所需的依赖项并将它们放在我的项目中。如果我建造的一切都有效

问题是在自动构建中,我们通过执行自定义构建管道的命令行调用unity。在这种情况下,android依赖项不会被下载(play resolver download不会被触发),因此unity会在没有这些依赖项的情况下创建apk,当我尝试打开应用程序时,它会崩溃,因为里面没有一些AndroidManifest代码

编辑

在我的管道中,我有一个运行此代码的预处理脚本

PlayServicesResolver.Resolve(continuePipeline, true, b => Debug.Log("Success: " + b));
如果我从unity编辑器中的MenuItem运行管道,则生成成功下载依赖项并创建apk,但当我在unity关闭的情况下运行命令时,进程将打开unity并尝试解析依赖项,但它会终止batchmode并停止管道

DependOn - group: com.google.firebase artifact: firebase-messaging-unity version: 4.3.0 packageIds:  repositories: Assets/Firebase/m2repository
UnityEngine.DebugLogHandler:Internal_Log(LogType, String, Object)
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:Log(Object)
Google.Logger:Log(String, LogLevel)
GooglePlayServices.PlayServicesResolver:Log(String, LogLevel)
GooglePlayServices.PlayServicesResolver:LogDelegate(String, LogLevel)
Google.JarResolver.PlayServicesSupport:Log(String, LogLevel, Boolean)
Google.JarResolver.PlayServicesSupport:DependOn(String, String, String, String[], String[], String)
GooglePlayServices.<Read>c__AnonStoreyC:<>m__E(XmlTextReader, String, Boolean, String, List`1)
Google.XmlUtilities:ParseXmlTextFileElements(String, Logger, ParseElement)
GooglePlayServices.AndroidXmlDependencies:Read(String, Logger)
GooglePlayServices.XmlDependencies:ReadAll(Logger)
GooglePlayServices.AndroidXmlDependencies:ReadAll(Logger)
GooglePlayServices.PlayServicesResolver:ResolveUnsafe(Action`1, Boolean)
GooglePlayServices.<Resolve>c__AnonStorey11:<>m__19()
GooglePlayServices.PlayServicesResolver:ExecuteNextResolveJob()
GooglePlayServices.PlayServicesResolver:Resolve(Action, Boolean, Action`1)
BuilderPreProccess:Run(BuildType, BuildTarget, Action) (at Assets/Editor/BuilderPreProccess.cs:10)
Etermax.CI.Builder:BuildPreProccess(BuildTarget, BuildType, Action) (at Assets/Standard Assets/node_modules/@etermax/etermax-ci/Assets/Package/Editor/Builder.cs:158)
Etermax.CI.Builder:RunPreProccess(BuildType, BuildTarget, Action) (at Assets/Standard Assets/node_modules/@etermax/etermax-ci/Assets/Package/Editor/Builder.cs:47)
Etermax.CI.ProjectBuilders:CIBuildQA() (at Assets/Standard Assets/node_modules/@etermax/etermax-ci/Assets/Package/Editor/ProjectBuilders.cs:69)

(Filename: Assets/Editor/BuilderPreProccess.cs Line: 10)

Refresh: detecting if any assets need to be imported or removed ... Refresh: elapses 0.224102 seconds (Nothing changed)
Resolving...
UnityEngine.DebugLogHandler:Internal_Log(LogType, String, Object)
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:Log(Object)
Google.Logger:Log(String, LogLevel)
GooglePlayServices.PlayServicesResolver:Log(String, LogLevel)
GooglePlayServices.PlayServicesResolver:ResolveUnsafe(Action`1, Boolean)
GooglePlayServices.<Resolve>c__AnonStorey11:<>m__19()
GooglePlayServices.PlayServicesResolver:ExecuteNextResolveJob()
GooglePlayServices.PlayServicesResolver:Resolve(Action, Boolean, Action`1)
BuilderPreProccess:Run(BuildType, BuildTarget, Action) (at Assets/Editor/BuilderPreProccess.cs:10)
Etermax.CI.Builder:BuildPreProccess(BuildTarget, BuildType, Action) (at Assets/Standard Assets/node_modules/@etermax/etermax-ci/Assets/Package/Editor/Builder.cs:158)
Etermax.CI.Builder:RunPreProccess(BuildType, BuildTarget, Action) (at Assets/Standard Assets/node_modules/@etermax/etermax-ci/Assets/Package/Editor/Builder.cs:47)
Etermax.CI.ProjectBuilders:CIBuildQA() (at Assets/Standard Assets/node_modules/@etermax/etermax-ci/Assets/Package/Editor/ProjectBuilders.cs:69)

(Filename: Assets/Editor/BuilderPreProccess.cs Line: 10)

Query Android SDK packages

/Users/martin/Library/Android/sdk/tools/bin/sdkmanager --list --verbose

UnityEngine.DebugLogHandler:Internal_Log(LogType, String, Object)
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:Log(Object)
Google.Logger:Log(String, LogLevel)
GooglePlayServices.PlayServicesResolver:Log(String, LogLevel)
GooglePlayServices.SdkManagerUtil:QueryPackages(String, String, Action`1)
GooglePlayServices.SdkManager:QueryPackages(Action`1)
GooglePlayServices.<DoResolution>c__AnonStorey10:<>m__16(IAndroidSdkManager)
GooglePlayServices.AndroidSdkManager:Create(String, Action`1)
GooglePlayServices.GradlePreBuildResolver:DoResolution(PlayServicesSupport, String, Action)
GooglePlayServices.PlayServicesResolver:ResolveUnsafe(Action`1, Boolean)
GooglePlayServices.<Resolve>c__AnonStorey11:<>m__19()
GooglePlayServices.PlayServicesResolver:ExecuteNextResolveJob()
GooglePlayServices.PlayServicesResolver:Resolve(Action, Boolean, Action`1)
BuilderPreProccess:Run(BuildType, BuildTarget, Action) (at Assets/Editor/BuilderPreProccess.cs:10)
Etermax.CI.Builder:BuildPreProccess(BuildTarget, BuildType, Action) (at Assets/Standard Assets/node_modules/@etermax/etermax-ci/Assets/Package/Editor/Builder.cs:158)
Etermax.CI.Builder:RunPreProccess(BuildType, BuildTarget, Action) (at Assets/Standard Assets/node_modules/@etermax/etermax-ci/Assets/Package/Editor/Builder.cs:47)
Etermax.CI.ProjectBuilders:CIBuildQA() (at Assets/Standard Assets/node_modules/@etermax/etermax-ci/Assets/Package/Editor/ProjectBuilders.cs:69)

(Filename: Assets/Editor/BuilderPreProccess.cs Line: 10)

Executing command: /Users/martin/Library/Android/sdk/tools/bin/sdkmanager --list --verbose
UnityEngine.DebugLogHandler:Internal_Log(LogType, String, Object)
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:Log(Object)
Google.Logger:Log(String, LogLevel)
GooglePlayServices.PlayServicesResolver:Log(String, LogLevel)
GooglePlayServices.CommandLineDialog:RunAsync(String, String, CompletionHandler, String, Dictionary`2, IOHandler, Int32)
GooglePlayServices.SdkManagerUtil:QueryPackages(String, String, Action`1)
GooglePlayServices.SdkManager:QueryPackages(Action`1)
GooglePlayServices.<DoResolution>c__AnonStorey10:<>m__16(IAndroidSdkManager)
GooglePlayServices.AndroidSdkManager:Create(String, Action`1)
GooglePlayServices.GradlePreBuildResolver:DoResolution(PlayServicesSupport, String, Action)
GooglePlayServices.PlayServicesResolver:ResolveUnsafe(Action`1, Boolean)
GooglePlayServices.<Resolve>c__AnonStorey11:<>m__19()
GooglePlayServices.PlayServicesResolver:ExecuteNextResolveJob()
GooglePlayServices.PlayServicesResolver:Resolve(Action, Boolean, Action`1)
BuilderPreProccess:Run(BuildType, BuildTarget, Action) (at Assets/Editor/BuilderPreProccess.cs:10)
Etermax.CI.Builder:BuildPreProccess(BuildTarget, BuildType, Action) (at Assets/Standard Assets/node_modules/@etermax/etermax-ci/Assets/Package/Editor/Builder.cs:158)
Etermax.CI.Builder:RunPreProccess(BuildType, BuildTarget, Action) (at Assets/Standard Assets/node_modules/@etermax/etermax-ci/Assets/Package/Editor/Builder.cs:47)
Etermax.CI.ProjectBuilders:CIBuildQA() (at Assets/Standard Assets/node_modules/@etermax/etermax-ci/Assets/Package/Editor/ProjectBuilders.cs:69)

(Filename: Assets/Editor/BuilderPreProccess.cs Line: 10)

Batchmode quit successfully invoked - shutting down!
DependOn-group:com.google.firebase工件:firebase消息统一版本:4.3.0 PackageId:repositories:Assets/firebase/m2repository
DebugLogHandler:内部日志(日志类型、字符串、对象)
DebugLogHandler:LogFormat(日志类型、对象、字符串、对象[])
记录器:日志(日志类型,对象)
调试:日志(对象)
Logger:Log(字符串,LogLevel)
PlayServicesResolver:Log(字符串,日志级别)
PlayServicesResolver:LogDelegate(字符串,日志级别)
Google.JarResolver.PlayServicesSupport:Log(字符串、日志级别、布尔值)
Google.JarResolver.PlayServicesSupport:DependOn(字符串,字符串,字符串,字符串[],字符串[],字符串)
GooglePlayServices.c__anonnstoreyc:m__E(XmlTextReader,String,Boolean,String,List`1)
Google.XmlUtilities:ParseXmlTextFileElements(字符串、记录器、ParseElement)
AndroidXmlDependencies:Read(字符串,记录器)
GooglePlayServices.XmlDependencies:ReadAll(记录器)
AndroidXmlDependencies:ReadAll(记录器)
GooglePlayServices.PlayServicesResolver:ResolveUnsafe(操作'1,布尔值)
GooglePlayServices.c_uuAnostorey11:m_uu19()
Google PlayServices.PlayServicesResolver:ExecuteExtresolveJob()
PlayServicesResolver:Resolve(动作,布尔值,动作'1)
builderpreccess:Run(BuildType、BuildTarget、Action)(位于Assets/Editor/builderpreccess.cs:10)
Etermax.CI.Builder:buildpreprocess(BuildTarget、BuildType、Action)(位于Assets/Standard Assets/node_modules/@Etermax/Etermax CI/Assets/Package/Editor/Builder.cs:158)
Etermax.CI.Builder:runpreprocess(BuildType、BuildTarget、Action)(位于Assets/Standard Assets/node_modules/@Etermax/Etermax CI/Assets/Package/Editor/Builder.cs:47)
Etermax.CI.ProjectBuilders:CIBuildQA()(位于Assets/Standard Assets/node_modules/@Etermax/Etermax CI/Assets/Package/Editor/ProjectBuilders.cs:69)
(文件名:Assets/Editor/builderpreaccess.cs行:10)
刷新:检测是否需要导入或删除任何资产。。。刷新:耗时0.224102秒(未更改)
解决。。。
DebugLogHandler:内部日志(日志类型、字符串、对象)
DebugLogHandler:LogFormat(日志类型、对象、字符串、对象[])
记录器:日志(日志类型,对象)
调试:日志(对象)
Logger:Log(字符串,LogLevel)
PlayServicesResolver:Log(字符串,日志级别)
GooglePlayServices.PlayServicesResolver:ResolveUnsafe(操作'1,布尔值)
GooglePlayServices.c_uuAnostorey11:m_uu19()
Google PlayServices.PlayServicesResolver:ExecuteExtresolveJob()
PlayServicesResolver:Resolve(动作,布尔值,动作'1)
builderpreccess:Run(BuildType、BuildTarget、Action)(位于Assets/Editor/builderpreccess.cs:10)
Etermax.CI.Builder:buildpreprocess(BuildTarget、BuildType、Action)(位于Assets/Standard Assets/node_modules/@Etermax/Etermax CI/Assets/Package/Editor/Builder.cs:158)
Etermax.CI.Builder:runpreprocess(BuildType、BuildTarget、Action)(位于Assets/Standard Assets/node_modules/@Etermax/Etermax CI/Assets/Package/Editor/Builder.cs:47)
Etermax.CI.ProjectBuilders:CIBuildQA()(位于Assets/Standard Assets/node_modules/@Etermax/Etermax CI/Assets/Package/Editor/ProjectBuilders.cs:69)
(文件名:Assets/Editor/builderpreaccess.cs行:10)
查询Android SDK包
/Users/martin/Library/Android/sdk/tools/bin/sdkmanager--list--verbose
DebugLogHandler:内部日志(日志类型、字符串、对象)
DebugLogHandler:LogFormat(日志类型、对象、字符串、对象[])
记录器:日志(日志类型,对象)
调试:日志(对象)
Logger:Log(字符串,LogLevel)
PlayServicesResolver:Log(字符串,日志级别)
GooglePlayServices.SdkManagerUtil:QueryPackages(String,String,Action`1)
SdkManager:QueryPackages(操作'1)
GooglePlayServices.c_uuuAnostorey10:m_uuu16(IAndroidSdkManager)
AndroidSdkManager:Create(字符串,Action`1)
GooglePlayServices.GradlePreBuildResolver:DoResolution(PlayServicesSupport,String,Action)
GooglePlayServices.PlayServicesResolver:ResolveUnsafe(操作'1,布尔值)
GooglePlayServices.c_uuAnostorey11:m_uu19()
Google PlayServices.PlayServicesResolver:ExecuteExtresolveJob()
PlayServicesResolver:Resolve(动作,布尔值,动作'1)
builderpreccess:Run(BuildType、BuildTarget、Action)(位于Assets/Editor/builderpreccess.cs:10)
Etermax.CI.Builder:buildpreprocess(BuildTarget、BuildType、Action)(位于Assets/Standard Assets/node_modules/@Etermax/Etermax CI/Assets/Package/Editor/Builder.cs:158)
Etermax.CI.Builder:runpreprocess(BuildType、BuildTarget、Action)(位于Assets/Standard Assets/node_modules/@Etermax/Etermax CI/Assets/Package/Editor/Builder.cs:47)
Etermax.CI.ProjectBuilders:CIBuildQA()(位于Assets/Standard Assets/node_modules/@Etermax/Etermax CI/Assets/Package/Editor/ProjectBu