1. 程式人生 > >從您的build檔案中移除簽署資訊

從您的build檔案中移除簽署資訊

1.在專案的根目錄下建立一個名為 keystore.properties 的檔案。此檔案應當包含您的簽署資訊,如下所示:
storePassword=myStorePassword
keyPassword=mykeyPassword
keyAlias=myKeyAlias
storeFile=myStoreFileLocation
2.在模組的 build.gradle 檔案中,於 android {} 塊的前面新增用於載入 keystore.properties 檔案的程式碼。

// Create a variable called keystorePropertiesFile, and initialize it to your
// keystore.properties file, in the rootProject folder.
def keystorePropertiesFile = rootProject.file(“keystore.properties”)

// Initialize a new Properties() object called keystoreProperties.
def keystoreProperties = new Properties()

// Load your keystore.properties file into the keystoreProperties object.
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

android {

}
3.您可以使用語法 keystoreProperties[‘propertyName’] 引用儲存在 keystoreProperties 中的屬性。修改模組 build.gradle 檔案的 signingConfigs 塊,以便使用此語法引用儲存在 keystoreProperties 中的簽署資訊。
android {
signingConfigs {
config {
keyAlias keystoreProperties[‘keyAlias’]
keyPassword keystoreProperties[‘keyPassword’]
storeFile file(keystoreProperties[‘storeFile’])
storePassword keystoreProperties[‘storePassword’]
}
}

}

要通過環境變數獲取這些密碼:

storePassword System.getenv(“KSTOREPWD”)
keyPassword System.getenv(“KEYPWD”)
要讓構建流程在您要從命令列呼叫此構建時提示您輸入這些密碼:

storePassword System.console().readLine(“\nKeystore password: “)
keyPassword System.console().readLine(“\nKey password: “)

構建未簽署 APK 並手動簽署它
開啟命令列,然後導航至專案的根目錄 - 在 Android Studio 中,選擇 View > Tool Windows > Terminal。然後呼叫 assembleRelease 任務:
gradlew assembleRelease
這將在 project_name/module_name/build/outputs/apk/ 中建立一個名為 module_name-unsigned.apk 的 APK。此 APK 此時處於未簽署且未對齊的狀態,使用您的私鑰簽署後才能安裝。

使用 zipalign 對齊未簽署的 APK:

zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk
zipalign 可以確保所有未壓縮的資料的開頭均相對於檔案開頭部分執行特定的位元組對齊,這樣可減少應用消耗的 RAM 量。

通過 apksigner 使用您的私鑰簽署 APK:

apksigner sign –ks my-release-key.jks –out my-app-release.apk my-app-unsigned-aligned.apk
在本例中,在使用單金鑰庫檔案 my-release-key.jks 中儲存的私鑰和證書籤署 APK 後,將以 my-app-release.apk 的形式輸出簽署的 APK。

apksigner 工具支援其他簽署選項,包括使用單獨的私鑰和證書檔案簽署 APK 檔案和使用多個簽署人簽署 APK。有關更多詳情,請參閱 apksigner 參考。

注:要使用 apksigner 工具,您必須已安裝 Android SDK Build Tool 的修訂版 24.0.3 或更高版本。您可以使用 SDK 管理器更新此軟體包。

驗證您的 APK 是否已簽署:

apksigner verify my-app-release.apk