python执行unity打包

由于打包机并没有图形界面,在满屏的日志里面找错误又比较繁琐。所以需要捕获日志的错误在最后显示

使用管道执行unityeditor命名空间下的打包方法。指定-logFile参数日志输出到stdout

返回非0值给shell捕获返回

python 复制代码
import os
import subprocess

def cmd(command):
    p= subprocess.Popen(command,shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    errLines=[]
    while p.poll() is None:
            line = p.stdout.readline()
            line = line.strip().decode("utf-8")
            print(line)
            if ": error" in line or "Exception:" in line:
                errLines.append(line)
                
    if p.returncode == 0:
        print('success')
    else:
        print('fail')
        for line in errLines:
            print(line)
        exit(1)

def main():
    unityPath = "F:/unity/2019.4.28f1c1/Editor/Unity.exe"
    projectPath = os.getcwd()
    method = "BuildTool.BuildSetting"
    cmd("{} -quit -batchmode -projectPath {} -executeMethod {} -logFile -nographics"
        .format(unityPath,projectPath,method))

if __name__ == "__main__":
    main()

最后把错误打印出来。方便查找原因

powershell 复制代码
Scan: 30.291ms
OnSourceAssetsModified: 0.000ms
UnregisterDeletedAssets: 0.000ms
InitializeImportedAssetsSnapshot: 7.527ms
GetAllGuidsForCategorization: 0.000ms
CategorizeAssets: 0.000ms
ImportAndPostprocessOutOfDateAssets: 0.000ms (0.000ms without children)
ImportManagerImport: 0.000ms (0.000ms without children)
ImportInProcess: 0.000ms
ImportOutOfProcess: 0.000ms
UpdateCategorizedAssets: 0.000ms
RemoteAssetCacheGetArtifact: 0.000ms (0.000ms without children)
RemoteAssetCacheResolve: 0.000ms
RemoteAssetCacheDownloadFile: 0.000ms
CompileScripts: 0.000ms
PostProcessAllAssets: 0.000ms
ReloadImportedAssets: 0.000ms
VerifyAssetsAreUpToDateAndCorrect: 0.000ms
EnsureUptoDateAssetsAreRegisteredWithGuidPM: 0.000ms
InitializingProgressBar: 0.000ms
PostProcessAllAssetNotificationsAddChangedAssets: 0.000ms
OnDemandSchedulerStart: 0.000ms
RestoreLoadedAssetsState: 0.000ms
InvokeProjectHasChanged: 0.000ms
UpdateImportedAssetsSnapshot: 0.000ms
ReloadSourceAssets: 0.000ms
UnloadImportedAssets: 0.000ms
Hotreload: 0.102ms
FixTempGuids: 0.015ms
VerifyGuidPMRegistrations: 0.000ms
GatherAllCurrentPrimaryArtifactRevisions: 1.013ms
UnloadStreamsBegin: 0.084ms
LoadedImportedAssetsSnapshotReleaseGCHandles: 2.447ms
GetLoadedSourceAssetsSnapshot: 2.884ms
PersistCurrentRevisions: 0.000ms
UnloadStreamsEnd: 0.059ms
GenerateScriptTypeHashes: 0.000ms
Untracked: 1.646ms
Refresh completed in 0.162346 seconds.
RefreshInfo: RefreshV2(NoUpdateAssetOptions)
RefreshProfiler: Total: 162.313ms
InvokeBeforeRefreshCallbacks: 0.001ms
ApplyChangesToAssetFolders: 0.094ms
WriteModifiedImportersToTextMetaFiles: 0.000ms
CleanLegacyArtifacts: 0.000ms
Scan: 88.633ms
OnSourceAssetsModified: 0.000ms
UnregisterDeletedAssets: 0.000ms
InitializeImportedAssetsSnapshot: 5.141ms
GetAllGuidsForCategorization: 0.382ms
CategorizeAssets: 46.687ms
ImportAndPostprocessOutOfDateAssets: 9.880ms (2.479ms without children)
ImportManagerImport: 0.000ms (0.000ms without children)
ImportInProcess: 0.000ms
ImportOutOfProcess: 0.000ms
UpdateCategorizedAssets: 0.000ms
RemoteAssetCacheGetArtifact: 0.000ms (0.000ms without children)
RemoteAssetCacheResolve: 0.000ms
RemoteAssetCacheDownloadFile: 0.000ms
CompileScripts: 0.000ms
PostProcessAllAssets: 0.001ms
ReloadImportedAssets: 0.000ms
VerifyAssetsAreUpToDateAndCorrect: 0.000ms
EnsureUptoDateAssetsAreRegisteredWithGuidPM: 1.376ms
InitializingProgressBar: 0.000ms
PostProcessAllAssetNotificationsAddChangedAssets: 0.837ms
OnDemandSchedulerStart: 0.885ms
RestoreLoadedAssetsState: 4.302ms
InvokeProjectHasChanged: 0.000ms
UpdateImportedAssetsSnapshot: 0.000ms
ReloadSourceAssets: 2.422ms
UnloadImportedAssets: 0.354ms
Hotreload: 0.114ms
FixTempGuids: 0.013ms
VerifyGuidPMRegistrations: 0.000ms
GatherAllCurrentPrimaryArtifactRevisions: 0.737ms
UnloadStreamsBegin: 0.096ms
LoadedImportedAssetsSnapshotReleaseGCHandles: 2.457ms
GetLoadedSourceAssetsSnapshot: 6.864ms
PersistCurrentRevisions: 0.000ms
UnloadStreamsEnd: 0.051ms
GenerateScriptTypeHashes: 0.000ms
Untracked: -1.613ms
Initializing Unity extensions:
'F:/unity/2019.4.28f1c1/Editor/Data/UnityExtensions/Unity/UnityVR/Editor/UnityEditor.VR.dll'  GUID: 4ba2329b63d54f0187bcaa12486b1b0f
Unloading 78 Unused Serialized files (Serialized files now loaded: 0)
System memory in use before: 56.5 MB.
System memory in use after: 55.8 MB.

Unloading 154 unused Assets to reduce memory usage. Loaded Objects now: 2517.
Total: 10.654000 ms (FindLiveObjects: 1.483200 ms CreateObjectMapping: 0.524500 ms MarkObjects: 7.094800 ms  DeleteObjects: 1.549400 ms)

Refreshing native plugins compatible for Editor in 13.10 ms, found 0 plugins.
Scripts have compiler errors.
(Filename: E:\unity\Runtime/Utilities/Argv.cpp Line: 376)


Aborting batchmode due to failure:
Scripts have compiler errors.


Aborting batchmode due to failure:
Scripts have compiler errors.

Exiting without the bug reporter. Application will terminate with return code 1
fail
Assets\Scripts\Core\Updater.cs(127,44): error CS0104: 'Tools' is an ambiguous reference between 'JEngine.Core.Tools' and 'UnityEditor.Tools'
Assets\Scripts\Core\Updater.cs(128,76): error CS0104: 'Tools' is an ambiguous reference between 'JEngine.Core.Tools' and 'UnityEditor.Tools'
Assets\Scripts\Core\Updater.cs(138,38): error CS0104: 'Tools' is an ambiguous reference between 'JEngine.Core.Tools' and 'UnityEditor.Tools'
Assets\Scripts\Core\Updater.cs(127,44): error CS0104: 'Tools' is an ambiguous reference between 'JEngine.Core.Tools' and 'UnityEditor.Tools'
Assets\Scripts\Core\Updater.cs(128,76): error CS0104: 'Tools' is an ambiguous reference between 'JEngine.Core.Tools' and 'UnityEditor.Tools'
Assets\Scripts\Core\Updater.cs(138,38): error CS0104: 'Tools' is an ambiguous reference between 'JEngine.Core.Tools' and 'UnityEditor.Tools'
相关推荐
深度学习lover27 分钟前
<项目代码>YOLOv8 苹果腐烂识别<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·苹果腐烂识别
XiaoLeisj1 小时前
【JavaEE初阶 — 多线程】单例模式 & 指令重排序问题
java·开发语言·java-ee
API快乐传递者1 小时前
淘宝反爬虫机制的主要手段有哪些?
爬虫·python
励志成为嵌入式工程师2 小时前
c语言简单编程练习9
c语言·开发语言·算法·vim
逐·風2 小时前
unity关于自定义渲染、内存管理、性能调优、复杂物理模拟、并行计算以及插件开发
前端·unity·c#
捕鲸叉3 小时前
创建线程时传递参数给线程
开发语言·c++·算法
A charmer3 小时前
【C++】vector 类深度解析:探索动态数组的奥秘
开发语言·c++·算法
Peter_chq3 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
阡之尘埃3 小时前
Python数据分析案例61——信贷风控评分卡模型(A卡)(scorecardpy 全面解析)
人工智能·python·机器学习·数据分析·智能风控·信贷风控
_oP_i4 小时前
Unity Addressables 系统处理 WebGL 打包本地资源的一种高效方式
unity·游戏引擎·webgl