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'
相关推荐
奈斯。zs2 分钟前
yjs08——矩阵、数组的运算
人工智能·python·线性代数·矩阵·numpy
Melody20502 分钟前
tensorflow-dataset 内网下载 指定目录
人工智能·python·tensorflow
学步_技术3 分钟前
Python编码系列—Python抽象工厂模式:构建复杂对象家族的蓝图
开发语言·python·抽象工厂模式
wn53127 分钟前
【Go - 类型断言】
服务器·开发语言·后端·golang
Narutolxy37 分钟前
Python 单元测试:深入理解与实战应用20240919
python·单元测试·log4j
Hello-Mr.Wang39 分钟前
vue3中开发引导页的方法
开发语言·前端·javascript
救救孩子把42 分钟前
Java基础之IO流
java·开发语言
WG_1743 分钟前
C++多态
开发语言·c++·面试
宇卿.1 小时前
Java键盘输入语句
java·开发语言
Amo Xiang1 小时前
2024 Python3.10 系统入门+进阶(十五):文件及目录操作
开发语言·python