【Addressable】發佈到服務端的那些事

你好,我是鄭洪智,你可以叫我大智。

前幾天有多個童鞋問我:

  • “Addressable打包好怎麼放到服務端?”
  • “發佈出來的程序,Addressable資源更新後怎麼加載不進來?”
  • “可以出一個addressable資源在服務器上的加載嗎?而不是本地加載 或者webgl的 這些官方文檔好少”

今天就來總結下使用Addressable系統在上線前的準備工作以及後續更新的一些工作,主要是討論Addressable中包含遠程資源的情況,如果是純本地資源,那就沒這麼麻煩,可以略過本文。

本文基於Addressable 1.5.0

Addressable發佈前的準備

Addressable發佈前有一些準備工作,通常是如下的工作:

1. Group分組的優化

藉助Analyze工具對分組進行分析,減少資源的重複,減少資源的下載量和加載時間。Analyze的具體用法就不多講了。

2. 檢查Group的設置

Build and Load Paths
非常重要的一個屬性,決定了資源將會打包到哪裏,從哪裏加載。

Content Update Restriction
決定了資源是全量更新還是增量更新。

  • Can Change Post Release 後續更新資源的話全量更新(直接替換舊資源)
  • Cannot Change Post Release 後續更新資源的話增量更新(不改變舊資源包,使用新資源包加載改變的內容)

3. 檢查Profile的設置以及選擇

通常在開發過程中是一套Profile,因爲在本地開發,可能會用Hosting服務進行測試,所以都是開發路徑。
但是發佈的時候一定要注意新建一套Profile,其中本地路徑幾乎不用變,但是Remote路徑,特別是RemoteLoadPath一定要改成服務器路徑。

如上圖所示,添加了一個Production的Profile。注意其中的RemoteBuildPath和RemoteLoadPath的設置。僅供參考,根據實際情況設置。

添加完也得記得切換啊喂!!!

4. 檢查AddressableAssetSettings

如果有後續更新資源的打算,一定要在第一版發佈前勾選上AddressableAssetSettings中的BuildRemoteCatalog,並確認下Path是否正確。

Addressable發佈中的工作

上面準備工作做完後,就可以開始發佈了。

1. 打包

首先是把資源打包出來。

**一定要注意後續更新Addressable資源時就【不能】再用這個選項打包了。**這種new build構建完就必須發佈新的包體。

原因是new build時,會將一些數據寫入AddressableAssetsData中,是存在工程中,打包的時候在程序包體中的,如AddressableAssetsData\Windows\addressables_content_state.bin。如果後續更新的時候再new build,那這些數據實際上是沒有辦法被原來已發佈的程序獲取到的,就會出現加載不到新資源的情況。

打包出來的資源如圖所示:

2. 將RemoteBuildPath裏的資源放到服務器合適的位置

下面舉個簡單的例子,放到服務器上(CDN同理)。

我在本地開一個apache http server(我很懶,用了xampp工具)

將第一步打包好的資源放到http server的根目錄中,對於xampp,就是htdocs目錄。

由於我是在本地測試的,所以還有一步,需要設置一下本地的hosts,讓系統能識別之前設置的那個域名。

windows平臺hosts文件位於:C:\Windows\System32\drivers\etc,注意使用管理員權限修改。

修改hosts

3. 在編輯器中測試一下

此時可以在編輯器中測試一下了。

4. 打包程序包體

打包程序,沒啥說的。

可以上線了!

後續資源更新

如果後續資源需要更新,就得使用資源更新的流程了。

**在這有的同學有誤解,以爲靜態內容(也就是Cannot Change Post Release)的Group才需要使用增量更新的流程。**其實不然,只要是程序包已經發布了,靜態內容和動態內容都得使用更新流程來處理資源的更新。

1. 更新Addressable資源包

複習(我是新來的啊喂!)一下,更新流程如下:
1、點擊Check for Content Update Restrictions按鈕

2、這時會彈出一個窗口Build Data File,讓你選擇一個bin文件(裏面是之前的資源包構建數據),bin文件的位置在Assets\AddressableAssetsData\[BuildTargetPlatform]。此時注意你當前要打包的平臺,不要選錯了。

3、這時候會彈出來一個窗口,顯示自從上一次打包以後,靜態內容的變化(Group設置爲Cannot Change Post Release的內容 )。如果有的話點擊Apply Changes,系統會自動給新的內容創建一個group。如果沒有可以忽略(如下圖就可以忽略)。

如果你的Group裏面沒有靜態內容(Group設置爲Cannot Change Post Release的內容 ),其實前面3步可以省略哈。

4、此時點擊Build菜單下面的Update a Previours Build,此時又要選擇一下Build Data File,就可以把資源包構建出來了。

5、把資源包上傳到服務器。

6、喝杯咖啡犒勞自己!

對Addressable感興趣的童鞋:更多教程在洪流學堂公衆號回覆addr獲取,包括Addressable各種工具的用法,自定義Analyze規則等等。


好了,今天就絮絮叨叨到這裏了。沒講清楚的地方歡迎評論,不點贊收藏我是不會回覆你的哦(¬、¬) (¬_¬)

我是大智,你的技術探路者,下次見!

別走!點贊收藏

好,你可以走了。

發佈了142 篇原創文章 · 獲贊 77 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章