使用keytool生成keystore簽名文件并在android studio中配置系統(tǒng)簽名簡(jiǎn)單記錄

首先下載keytool工具,地址
https://github.com/getfatday/keytool-importkeypair

我的是放在桌面下,目錄如下。

C:\Users\lei\Desktop\keytool-importkeypair-master\keytool-importkeypair-master
image.png

由于這個(gè)工具需要在linux中運(yùn)行,但是我沒(méi)有那個(gè)環(huán)境,因此使用MinGW代替。
打開(kāi) D:\MinGW\msys\1.0目錄下的msys.bat,進(jìn)入環(huán)境(類似win中的cmd)。
然后輸入命令進(jìn)入keytool-importkeypair目錄下。

cd C:/Users/lei/Desktop/keytool-importkeypair-master/keytool-importkeypair-master

注意:這里命令中的文件目錄用的是反斜杠不是斜杠。用的是斜杠的話在MinGW環(huán)境中就無(wú)法進(jìn)入目錄。會(huì)提示No such file or directory。

image.png
windows:
C:\Users\lei\Desktop\keytool-importkeypair-master\keytool-importkeypair-master
MinGW:
C:/Users/lei/Desktop/keytool-importkeypair-master/keytool-importkeypair-master

如下圖所示,進(jìn)入了keytool-importkeypair-master中。

image.png

然后將platform.x509.pem和platform.pk8 copy至keytool-importkeypair-master中(platform.x509.pem和platform.pk8就是編譯系統(tǒng)的時(shí)候security文件夾下的文件,需要廠商提供)。

image.png
image.png

至此,準(zhǔn)備工作完成,可以生成keystore文件了。
在MinGw中執(zhí)行命令。

./keytool-importkeypair -k ./platform.keystore -p android -pk8 platform.pk8 -cert platform.x509.pem -alias platform

-k 表示要生成的 keystore 文件的名字,這里命名為 platform.keystore
-p 表示要生成的 keystore 的密碼,這里是 android
-pk8 表示要導(dǎo)入的 platform.pk8 文件
-cert 表示要導(dǎo)入的platform.x509.pem
-alias 表示給生成的 platform.keystore 取一個(gè)別名,這是命名為 platform

image.png

然后platform.keystore文件就生成了。


image.png

這個(gè)文件就是android studio需要的簽名文件,稍后在build.gradle中進(jìn)行配置。
我把platform.keystore文件放到C:\test目錄下了。因此storeFile file是C:\test\platform.keystore。

android {
    ................
     defaultConfig {
        ................
     }

    signingConfigs {
        debug   {
            storeFile file('C:\\test\\platform.keystore')
            storePassword 'android'
            keyAlias 'platform'
            keyPassword 'android'
        }
        release   {
            storeFile file('C:\\test\\platform.keystore')
            storePassword 'android'
            keyAlias 'platform'
            keyPassword 'android'
        }
    }

    buildTypes {
        ................
    }
}

dependencies {
    ..............
}

注意:signingConfigs 必須放在buildTypes 之前,否則在后續(xù)設(shè)置了buildTypes 之后,gradle會(huì)報(bào)錯(cuò)。
Could not get unknown property 'release' for SigningConfig container

然后還需要在project structure中配置一下buildTypes,這樣run app后安裝的就是帶簽名的。

image.png

設(shè)置buildTypes中debug的signing config為debug,release的signing config為release。

image.png
image.png

這樣就不用每次使用編譯生成apk然后使用signapk.jar生成帶系統(tǒng)簽名的apk了。
最后記得在AndroidManifest.xml文件中的對(duì)應(yīng)位置加上 android:sharedUserId="android.uid.system"。


<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.example......"

    android:sharedUserId="android.uid.system">

    .....

    .....

</manifest>

這樣就是系統(tǒng)級(jí)權(quán)限的apk了。

參考鏈接:

讓Android Studio支持系統(tǒng)簽名(證書(shū))
http://m.itdecent.cn/p/47265c8899b5

編譯錯(cuò)誤:Could not get unknown property 'release' for SigningConfig container

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

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

  • 用兩張圖告訴你,為什么你的 App 會(huì)卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 14,121評(píng)論 2 59
  • 也有提到怎么單獨(dú)給一個(gè)apk簽名,這里補(bǔ)充一下android的簽名權(quán)限控制機(jī)制。 android的標(biāo)準(zhǔn)簽名key有...
    WorkFamily閱讀 9,360評(píng)論 1 5
  • 一、前言 Android 簽名。 在說(shuō)道Android簽名之前,我們需要了解的幾個(gè)知識(shí)點(diǎn) 1、數(shù)據(jù)摘要(數(shù)據(jù)指紋)...
    福later閱讀 21,744評(píng)論 0 13
  • Android 中簽名 加密和HTTPS 一 RSA 加密算法 1. 非對(duì)稱加密算法 1976年,兩位美國(guó)計(jì)算機(jī)學(xué)...
    赤兔歡閱讀 2,680評(píng)論 0 0
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,355評(píng)論 25 708

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