Android Studio打包專案:APK
本節只針對如何從零開始實現簡單的打包簽名
建立新的簽名檔案
概要
debug.keystore:使用Android Studio直接編譯執行時預設使用的簽名證書,存放路徑C:\Users<你的使用者名稱>.android
app-debug.apk:使用Android Studio直接編譯時生成的apk檔案
V1(Jar Signature):
V2(Full APK Signature):
APK檔案的校驗指令:jarsigner -verbose -certs -verify 簽名過的apk檔案
AS版本資訊
簽名檔案的生成
Android APP都需要我們用一個證書對應用進行數字簽名,不然的話是無法安裝到Android手機上的,平時我們除錯執行時到手機上時,是AS會自動用預設的金鑰和證書來進行簽名;但是我們實際釋出編譯時,則不會自動簽名,這個時候我們就需要進行手動簽名,那麼我們的簽名檔案怎麼來?下面圖文結合會手把手教你
到此,前面檔案已經生成在我們指定的目錄下了
備註:一個簽名檔案,是可以被多個APP專案進行簽名打包使用的
簽名打包
- 除錯執行時的打包
我們上面有提到使用AS直接編譯進行除錯執行時,使用的是預設的簽名檔案進行簽名,這時候會在build/outputs/apk/debug/
目錄下生成一個app-debug.apk
,這個就是使用谷歌預設的簽名檔案進行簽名打包的 - 釋出編譯時的打包
當我們已經開發完成之後,要實際放到應用市場上去進行釋出時,就需要使用正式簽名檔案編譯Release包,其中可以使用AS的操作介面進行打包,也可以使用Gradle命令進行打包,以下是AS視覺化操作進行打包步驟
根據需要,可以簽名打包出Debug版本和Release版本
編譯出來的目錄地址:
最後,我們初次把包打出來之後,當然要驗證是否有簽名成功
jarsigner -verbose -certs -verify 簽名過的apk檔案
AS除錯執行時包驗證結果如下
C:\Users\Aso>jarsigner -verbose -certs -verify C:\Users\Aso\Desktop\apk\app-debug.apk
s = 已驗證簽名
m = 在清單中列出條目
k = 在金鑰庫中至少找到了一個證書
i = 在身份作用域內至少找到了一個證書
沒有清單。
jar 未簽名。
C:\Users\Aso>
釋出編譯時包驗證結果(裁剪過的)如下 (詳細內容傳送門)
C:\Users\Aso>jarsigner -verbose -certs -verify C:\Users\Aso\Desktop\apptools\app-debug.apk
sm 316 Thu Jan 01 01:01:02 CST 1981 res/interpolator/btn_checkbox_checked_mtrl_animation_interpolator_0.xml
>>> 簽名者
X.509, CN=dengfusu
[證書的有效期為20-9-27 上午11:06至45-9-21 上午11:06]
[無效的證書鏈: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target]
......
>>> 簽名者
X.509, CN=dengfusu
[證書的有效期為20-9-27 上午11:06至45-9-21 上午11:06]
[無效的證書鏈: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target]
s = 已驗證簽名
m = 在清單中列出條目
k = 在金鑰庫中至少找到了一個證書
i = 在身份作用域內至少找到了一個證書
- 由 "CN=dengfusu" 簽名
摘要演算法: SHA-256
簽名演算法: SHA256withRSA, 2048 位金鑰
jar 已驗證。
警告:
此 jar 包含其證書鏈無效的條目。原因: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
此 jar 包含其簽名者證書為自簽名證書的條目。
此 jar 包含的簽名沒有時間戳。如果沒有時間戳, 則在其中任一簽名者證書到期 (最早為 2045-09-21) 之後, 使用者可能無法驗證此 jar。
簽名者證書將於 2045-09-21 到期。
C:\Users\Aso>
相關文章
- Android Studio打包apk,aar,jar包AndroidAPKJAR
- Android studio匯出apk檔案AndroidAPK
- Android APK打包流程AndroidAPK
- Flutter 38: 圖解 Android 打包 APK 檔案Flutter圖解AndroidAPK
- vue 專案打包成apk(Hbuilder方案)VueAPKUI
- flutter常見問題【3】:Flutter 使用Android studio 打包生成apkFlutterAndroidAPK
- uni-app專案打包成apk(本地打包篇)APPAPK
- Flutter 打包 android端 apkFlutterAndroidAPK
- uni-app&H5&Android混合開發二 || 使用Android Studio打包應用APKAPPH5AndroidAPK
- 簽名打包Android版apkAndroidAPK
- Android Apk反編譯系列教程(二)APK重打包AndroidAPK編譯
- Cordova 打包 apk,html 打包 apkAPKHTML
- Android Studio NDK:三、打包SOAndroid
- Android Apk 檔案反編譯和重新打包的過程分析AndroidAPK編譯
- Android studio 自動複製生成的 apkAndroidAPK
- Visual Studio Installer打包安裝專案VS2015
- 【Android APK】解析SD卡上的APK檔案AndroidAPKSD卡
- Android Studio修改專案名和包名Android
- 使用命令列建立Android Studio專案命令列Android
- Android Studio在android Emulator中執行的專案黑屏Android
- Flutter的apk打包FlutterAPK
- Android Apk反編譯系列教程(三)Android Studio除錯smali程式碼AndroidAPK編譯除錯
- 【Android Studio】解決升級 macOS High Sierra 後 Android Studio 同步專案時 gradle 構AndroidMacGradle
- Android專案實戰(四十):Andoird7.0+安裝APK適配AndroidAPK
- Android Studio 專案匯入的正確姿勢Android
- 純小白uni-app+Android Studio離線打包APPAndroid
- 前端專案打包前端
- Android Studio 已有專案新增NDK支援(mac/ndk-build)AndroidMacUI
- Android Studio向專案新增C/C++原生程式碼AndroidC++
- Android開發_在Android Studio中搜尋專案中出現過的字串Android字串
- 一鍵解決Android專案圖片壓縮煩惱,為apk瘦身!AndroidAPK
- android studio匯入專案--解決gradle-headache問題AndroidGradle
- Android Studio Run專案出現Failure [INSTALL_FAILED_TEST_ONLY]AndroidAI
- Android Studio目錄結構及工程專案結構解析Android
- Android Studio執行報錯INSTALL_FAILED_INVALID_APK: Split lib_slice _2_apk was defined multiple times....AndroidAIAPK
- Flutter入門進階之旅(十八)Flutter專案打包成aar整合到原生Android專案FlutterAndroid
- Nuitka 打包python專案UIPython
- springboot專案打包瘦身Spring Boot