如何使用Xcode分析調試在真機運行的UE4 IOS版游戲


寫本文的是因為UE4 官方文檔雖然也有,但主要講的是是用UE4Editor把游戲打成一個IPA包的形式發布的方法

而對於想通過Xcode分析UE4的渲染流程來學習或優化的朋友,那官方文檔的資料還是不夠的,這里是總結一下在Mac上用Xcode對UE4 ios app做Analyze的教程。

要在Xcode里調試或分析,直接下載編輯器是不行的,首先還是要有UE4的源代碼,從官方或民間下載都可以,一般是1個UnrealEngine包,2個Required包,先解壓UnrealEngine,再把Required里的內容分別拖到解壓后的UnrealEngine文件夾里,Required1和Required2因為有同名文件夾,記得選擇keep newer 或 merge(OSX的版本不同),就可以把3個包的內容都拷貝好。然后運行 GeneragteProjectFiles.command,稍等就可以生成出UE4.xcodeproj的Xcode工程了。

用Xcode打開工程,直接Build UE4Editor,這個過程根據你Mac設備性能的不同可以要10~30分鍾

這個時候你還需要一個進行測試的工程文件,進入MarketPlace,下載這個比較經典的Sun Temple工程好了

進入這個頁面,下載完成后,就可以創建工程了

如果是編輯器發布的方式,這里打開就可以按官方教材繼續修改打包發布了,但如果需要代碼做調試和分析的話, 這里可以跳過

回到我們UE4源代碼的Xcode工程,運行編輯器,然后在工程創建頁面,會看到在MarketPlace創建的工程文件,選擇SunTemple工程進入

如果編輯器和工程版本不一樣,可能需要進行版本轉化,建議小版本號,如4.5.0~4.5.x可以跳過或再開一份拷貝。


這里還需要注意一點的是,如圖下圖,你編譯出來的UE4Game。在一些版本里可能會是UE4Ggame-IOS-Debug一類的名字,UE4在Xcode或編輯器里打包時調用的是UE4Ggame,否則工程會打包失敗
所以可以先在編輯器里打包試試,如果提示找不到UE4Game再進到這個目錄改名。

 

在官方教程里,提到可以在生成的工程文件.uproject上右鍵選擇Generate Xcode Project,但這樣生成的Xcode工程是不帶任何引擎源碼的,無法起到調試作用

正確的方法,應該是先進入編輯器,在File->Package Project的頁面里,選擇Packaging Setting.

這里可以選擇是渲染器使用的圖形API是GLES2還是Metal

保存,然后選擇Refresh Xcode Project,這樣就會生成帶shader,ue4引擎源碼的Xcode項目工程文件了。

 

從工程目錄進入SunTemple工程,如圖,選擇UE4Game-iOS,並在真機上運行,UE4默認的運行機制,其實就是一個統一的UE4Game的前端+資源包的形式

為了能在Xcode上捕獲GPU信息,需要進入UE4Game的Scheme里進行設置

這因為UE4同時支持GLES和Metal的,Xcode無法判斷你使用的究竟是哪個API,所以在GPU Frame Capture里必須強制為GLES,才可以成功進行分析。

在真機上運行UE4Game,然后點擊到Show the Debug Navigator的圖標,就可以對當前運行UE4 app進行GPU分析了 

點擊Analyze按鈕后稍等片刻,Xcode會捕獲Frame的整個繪制流程,並可通過滑動滑竿來瀏覽。

同時也可以查看繪制調用部分使用的shader代碼,並支持動態修改調試

而Debug的方式則和平時調試一樣,在指定的代碼部分放置斷點就可以了。解決了這個問題,就可以針對UE4在移動端上渲染方案進行分析和借鑒了,接下來我應該也會提供這方面的進一步資料。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM