Cocos版本:2.4.4
一 打包apk
二 App ABi的勾選
三 加密腳本
四 網易易盾插件
五 其它問題
一 打包apk
在android studio中,選擇生成帶簽名的apk
選擇APK
選擇Module處,選擇你的項目。
然后如果已有簽名jks文件則選擇choose existing,並輸入你的key store密碼。 沒有jks文件的話選擇新建一個create new。
選擇create new,新建一個key store,記住你的密碼。
創建並選擇key store后,選擇下一步,選擇v1。
v1和v2的區別查看:淺談android簽名v1和v2
二者簽名所產生的結果:
v1:在v1中只對未壓縮的文件內容進行了驗證,所以在APK簽名之后可以進行很多修改——文件可以移動,甚至可以重新壓縮。即可以對簽名后的文件在進行處理
v2:v2簽名驗證了歸檔中的所有字節,而不是單獨的ZIP條目,如果您在構建過程中有任何定制任務,包括篡改或處理APK文件,請確保禁用它們,否則您可能會使v2簽名失效,從而使您的APKs與Android 7.0和以上版本不兼容。
點擊finish后,進行打包apk,可以在build欄查看打包進度。
打包成功后,會顯示success;打包失敗的話查看錯誤。
在項目中找到release目錄,下面有你打包出來的apk
二 App ABI的勾選
app abi對應不同的cpu設備,勾選的越多,適應的設備越多,包體越大。
發布apk后在lib文件夾下可查看,一個有20M左右。感覺只需要勾選armeabi-v7a和x86就可以了。
app abi設備的cpu類型:
- armeabiv-v7a: 第7代及以上的 ARM 處理器。2011年15月以后的生產的大部分Android設備都使用它.
- arm64-v8a: 第8代、64位ARM處理器,很少設備,三星 Galaxy S6是其中之一。
- armeabi: 第5代、第6代的ARM處理器,早期的手機用的比較多。
- x86: 平板、模擬器用得比較多。
- x86_64: 64位的平板。
發布后在android項目中的APP ABI配置
解壓了幾個線上游戲看了看lib文件夾
三 加密腳本
未加密的話解壓apk包后,js的文件是這樣的
勾選加密后,js文件會變成jsc后綴的文件
四 網易易盾插件
商店里有免費插件
在游戲構建發布后,打開插件
配置好后點擊加密
解壓經過網易易盾加固的apk,解壓后的apk里圖片都無法查看
json文件也無法閱讀了
js文件
這個網易加固和cocos發布面板的加密可以共存。但是感覺這個插件是用來給網易易盾引流的。。。
五 其它問題
1 修改app的icon
找android項目res路徑下的app圖標進行替換
一共有好幾個
2 修改app的名稱
找到項目中的strings.xml文件,修改app_name名稱
app_name在AndroidManifest.xml文件中被引用
3 修改包名
4 修改權限
安卓權限相關說明:Android中的權限
所有安卓權限API:完整安卓權限API參考文檔
5 版本號設置
versionCode 用於版本控制,當已安裝app是2,新下載安裝的app是1時,替換會失敗。
versionName 在安裝時,安裝界面顯示給用戶看的版本號
6 簽名錯誤
在生成簽名時報錯
在jdk\bin目錄下shift+右鍵,選擇打開命名窗口
把keytool.exe拖動到窗口中
再輸入
keytool -importkeystore -srckeystore F:\Git\Cocos_Diablo\hotUpdate\diablo.jks -destkeystore F:\Git\Cocos_Diablo\hotUpdate\diablo.jks -deststoretype pkcs12
7 transformClassesAndResourcesWithProguardForRelease
android打包時會對代碼混淆,刪除無用資源等,這個錯誤是開啟了混淆但是找不到相應的類
解決方案1:
在build.gradle中將minifyEnabled和shrinkResources設置為false,則打包成功。
解決方案2:
在proguard-rules.pro文件中,將報錯提示的類都設置為
-keep xxxx
-dontwarn xxxxxx