解決選擇 Active Build Variant -> Release 執行錯誤

 前言

以下內容為 :
1. Active Build Variant 在選擇 Debug 時執行正常,切換至 Release 後錯誤的處理方式.
2. Release key 資料 在 signingConfigs 會顯示敏感資料的處理.

切換至 Release 後錯誤的處理方式

開啟 Project Structure

選擇 Modules

選擇 Signing Configs ,並點選 “ + ”

新增一個 Signing Config

填寫 .jks 金鑰資訊

注意:如果還沒有申請金鑰,請先申請後再返回填寫.

未申請金鑰,點選 Generate Signed Bundle or APK 先申請
已申請可以跳過這一步

點選 Create New

填寫詳細資訊,請務必保存好金鑰即記住 Alias 跟 Password

返回 Signing Configs

選擇檔案,填寫相關資訊後,點選 OK

signingConfigs 是包在 android { } 括號內

Project Structure 切換到 Build Variants

選擇 release,在 Signing Config 下拉選單選擇預設的值

設定完成點選 OK

確認 buildTypes { } 括號內 signingConfig 以設定
buildTypes 與 signingConfigs 相同,是包在 android { } 括號內

以上設定完成即可正常執行.

Release key 資料 在 signingConfigs 會顯示敏感資料的處理

官方文件注意事項


由於 build.gradle 內包含金鑰等敏感訊息,可以透過設定移除私密訊息.
官網文件標題為 -> 從項目中移除私密簽名訊息

實作 -> 新增 Properties 

切換到 Project

對根目錄 New File

輸入名稱,不用強制命名為 keystore

檔案包含敏感資訊不用加入版本控制,點選 Cancel

將 build.gradle(app) 內金鑰資訊,填寫在 keystore.properties
注意不要用使用引號 ‘ ’,否則會錯誤

外層 build.gradle -> storeFile 已經有宣告 file ( )
keystore.properties 內參數 storeFile 不用再填寫 file ( )

金鑰資訊在 Build.gradle 內不會直接顯示

def keyStorePropertiesFile 需要先宣告,否則會錯誤

storeFile file(keystoreProperties[store]) 會帶一段路徑,路經會到專案下的 app 資料夾 

“Users/xxx/AndroidStudioProjects/testGit/app/” -> 根據設定專案位置會所不同
“” 內路徑會帶到專案內的 app 資料夾路徑下,所以只要加入 key 名稱即可,填錯會無法執行 APP

Modules 下的資訊都會被 keystore.properties 變數取代

需要注意金鑰檔案的位置:
1. 直接取得檔案的寫法,敏感資訊沒有隱藏,key 的位置可以放在電腦內的任意位置,只需要給定資料夾的位置即可.
2. 使用 keystore.properties 後,金鑰的位置需要移動到專案 app資料夾下,沒有設定會錯誤.

原位置 (直接取得)
'/Users/xxx/Desktop/key/froggy'

使用 keystore.properties (需要放在專案下)
'/Users/xxx/AndroidStudioProjects/testGit/app/froggy'

後記

如果這篇文章對於你有幫助,可以幫忙分享給更多的人,如果文章內容有誤,可以在下方留言告知.

留言

熱門文章

40 個可以改變寫程式技巧的秘訣

如何創造出難以維護的程式碼

雲端硬碟比較,哪種硬碟最推薦? (Google 雲端硬碟, OneDrive, DropBox, iCloud)