另辟蹊徑的"一鍵打包"

開發(fā)環(huán)境

Cocos Creator 3.5.2

需求

在日常的工作中,我們常常有這樣的需求

  1. 在具有多個(gè)關(guān)卡的游戲中,挑選某些關(guān)卡作為發(fā)包內(nèi)容。
  2. 根據(jù)不同打包渠道中設(shè)置不同的壓縮參數(shù),對資源進(jìn)行壓縮。
  3. 對目標(biāo)資源進(jìn)行加密
  4. .....其他處理
  5. 出包

如果每一步之間都具有間歇,且都需要手動(dòng)操作,則存在兩個(gè)弊端:

  1. 繁瑣,耗時(shí),工作效率相當(dāng)?shù)汀?/li>
  2. 容易遺漏,出錯(cuò)。

而且通常這類需求一旦確定,極少修改。因此,盡量將其實(shí)現(xiàn)一鍵化,能夠非常大限度地提高效率、降低出錯(cuò)率,打包的期間也可以喝喝咖啡,事半功倍。

實(shí)現(xiàn)方式

一. creator 編輯器提供的自定義構(gòu)建流程

該方法羽毛只做了簡單的了解與調(diào)研,暫未實(shí)踐,后續(xù)實(shí)踐結(jié)束后將推出文章分享。

官方介紹文檔:

優(yōu)點(diǎn):

  1. 可介入的流程較多
  2. 能夠使用Cocos Creator提供的一些api,也能夠在js代碼中調(diào)用命令行。


  3. 跨平臺效果較好。

缺點(diǎn):

  1. 需要對構(gòu)建流程有所了解,以及api調(diào)用方法等,有一定的學(xué)習(xí)成本。

?
?



二. win/mac的shell/sh腳本

  1. Cocos Creator提供了命令行構(gòu)建的方式,可以與sh、shell等結(jié)合實(shí)現(xiàn)更多自定義操作。
  1. 通過觀察構(gòu)建參數(shù),我們可以發(fā)現(xiàn)這里提供了參數(shù)文件路徑的指定,這樣我們就可以將編輯器構(gòu)建面板中的參數(shù)導(dǎo)出為配置文件后,通過命令行進(jìn)行構(gòu)建,命令行操作與在構(gòu)建面板上點(diǎn)擊構(gòu)建的效果等效。



  2. 導(dǎo)出構(gòu)建配置文件后,可在構(gòu)建前、構(gòu)建后配合其他命令進(jìn)行流程定制/例如:

  • 可在構(gòu)建命令前通過命令行移動(dòng)無關(guān)資源到臨時(shí)文件夾,構(gòu)建后移動(dòng)回原位置,實(shí)現(xiàn)分渠道分資源打包的需求。
  • 可在構(gòu)建命令后通過命令行進(jìn)行圖形文本資源加密與壓縮、音頻資源壓縮等。
  1. 包體生成:
  • 對于H5/微信小游戲等h5端,構(gòu)建命令結(jié)束后包體即打包完成。

  • 對于android平臺,還需要調(diào)用gradle打包命令才能完成包體的生成。而對于ios則可以使用xcrun命令進(jìn)行自動(dòng)化打包。

將以上命令編寫完成后,保存為bat/sh腳本文件,只需雙擊,就可以實(shí)現(xiàn)不同渠道差異化處理資源、各類資源壓縮加密、包體生成等一系列操作的一鍵完成,不易出錯(cuò)且無需間歇,大大提升出包舒適度,每天多出幾份喝咖啡的時(shí)間。

example(android)

優(yōu)點(diǎn):

  1. 上手簡單,快速實(shí)現(xiàn)。
  2. 維護(hù)修改方便。
  3. 市面上有大量現(xiàn)成且優(yōu)秀的壓縮、加密等資源處理工具可以通過命令行調(diào)用,還可在調(diào)用這些工具時(shí)指定不同的參數(shù),可以針對不同渠道和平臺指定不同的壓縮參數(shù)等,進(jìn)一步細(xì)化性能與表現(xiàn)的平衡。

缺點(diǎn):

  1. 只可在構(gòu)建前與構(gòu)建后(生成前)參與一些流程定制,無法接入構(gòu)建中的流程。
  2. Windows/Mac需要分別維護(hù)bat/sh腳本文件。

小結(jié)

以上是羽毛對兩種自定義構(gòu)建流程實(shí)現(xiàn)方式的思考,選擇哪種方法主要基于學(xué)習(xí)成本、需求與維護(hù)成本進(jìn)行思考,希望我的分享對大家的日常開發(fā)能夠有所幫助。

其他打包技巧分享

  1. 當(dāng)我們打包時(shí)調(diào)試時(shí),如果需要對多種cpu(armeabi-v7a\arm64-v8a\x86\x86_64)進(jìn)行編譯,可以在build.gradle指定為debug包配置只編譯arme-v7a一種cpu支持,減少N倍的編譯時(shí)間,同時(shí)也不會易出錯(cuò)。

有同學(xué)認(rèn)為也可以通過設(shè)置PROP_APP_ABI實(shí)現(xiàn),設(shè)置PROP_APP_ABI=armeabi-v7a:arm64-v8a容易導(dǎo)致發(fā)布版本時(shí)遺漏,忘記改回,導(dǎo)致出release包時(shí)出錯(cuò)。而通過上述方式只影響debug包,而日常我們調(diào)試也恰巧更喜好debug包。

  1. 可以配置根據(jù)versionName、versioncode等參數(shù)對輸出包體進(jìn)行命名。便于包體管理。

打包后,可以擁有漂亮、便于區(qū)分的文件名,關(guān)心的關(guān)鍵信息一目了然

更多

Web/Native資源加密方案

Spine換裝方案多平臺解析

基于creator3.0的3D換裝

CocosCreator3.4.2原生二次開發(fā)的正確姿勢——手把手教你接SDK

在編輯器上聲明自定義數(shù)據(jù)數(shù)組

包體優(yōu)化指南

不規(guī)則3D地形行走

快速實(shí)現(xiàn)3d拋物線繪制

奇形怪狀-不規(guī)則按鈕實(shí)現(xiàn)

關(guān)于作者

我是羽毛,一名游戲研發(fā)工程師,一名野生攝影同學(xué)。我的公眾號主要分享自己的一些游戲項(xiàng)目開發(fā)過程中的功能總結(jié)及日常開發(fā)筆記。也希望能通過平臺的交流,與更多有想法的同學(xué)交流認(rèn)識,共同成長。
歡迎大家在日常開發(fā)過程中,如果覺得有需要討論解決、分享或者探討的內(nèi)容,在公眾號后臺或者文章留言處給我反饋,提供寫作的方向,從另一個(gè)角度也盡量讓寫作內(nèi)容更貼近大家的需求以及痛點(diǎn),在此謝謝各位同學(xué)

今日技能你學(xué)廢了嗎?

<div align ="center">
<h2>更多精彩歡迎關(guān)注微信公眾號</h2>
<img src="https://upload-images.jianshu.io/upload_images/21178773-2b1591dae54346cc.png" width="80%"/>
<img src="https://upload-images.jianshu.io/upload_images/21178773-5d7155f1329efbdd.png" />

</div>

本文由mdnice多平臺發(fā)布

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容