詳解Android Studio正式簽名進(jìn)行調(diào)試的實(shí)現(xiàn)步驟
詳解Android Studio正式簽名進(jìn)行調(diào)試的實(shí)現(xiàn)步驟
在Android Studio中,可以使用Gradle進(jìn)行打包時(shí)自動(dòng)簽名。其實(shí)Android Studio默認(rèn)會(huì)給調(diào)試應(yīng)用加上Debug簽名,但有時(shí)候調(diào)一些第三方SDK時(shí),需要正式簽名才能調(diào)起來,所以接下來分享一下使用Gradle自動(dòng)簽名的方法。
一、創(chuàng)建簽名文件
打開AS,選擇Build->Generate Signed APK,選擇要打包的項(xiàng)目,點(diǎn)擊Next,再點(diǎn)擊Create new...創(chuàng)建簽名文件
填寫簽名文件響應(yīng)信息,如下所示,Password、Key-Alias、Key-Password這三個(gè)值需要記住,然后點(diǎn)擊OK,完成創(chuàng)建。
完成之后,在相應(yīng)路徑生成一個(gè)jks簽名文件。如果選擇手動(dòng)再進(jìn)行打包,就可以選擇該簽名文件,然后對(duì)應(yīng)填入密碼與別名,進(jìn)行簽名,也可以。
二、配置Gradle自動(dòng)打包
拷貝簽名文件到主工程根目錄,打開主工程的build.gradle文件,在android節(jié)點(diǎn)下,增加以下內(nèi)容:
signingConfigs { release { storeFile file('keystore.jks') storePassword '123456' keyAlias 'yyh' keyPassword '123456' } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' signingConfig signingConfigs.release } debug { signingConfig signingConfigs.release } }
storeFile file:簽名文件,如果放在其他路徑,需要對(duì)應(yīng)修改
storePassword:密碼(剛才填的第一個(gè)密碼)
keyAlias:別名
keyPassword:別名密碼
然后重新build一下工程,展開右邊欄Gradle選項(xiàng)卡,如下所示:
assembleRelease,即為正式簽名。雙擊assembleRelease,則會(huì)開始執(zhí)行命令:

執(zhí)行完畢可以看到BUILD SUCCESSFUL,說明正式簽名打包成功了。展開工程的build文件夾,可發(fā)現(xiàn)有app-release.apk,即為正式版本。
下次直接run起來的時(shí)候,就帶正式簽名了。這可比手動(dòng)簽名省事多啦~~
當(dāng)然,為了提高安全性,我們還可以把那四個(gè)屬性作為變量配置在主工程的gradle.propreties,然后在build.gradle引用變量就可以了。如下:
這樣也能起到同樣的效果。
三、應(yīng)用程序簽名的意義
(1)保障開發(fā)者的合法權(quán)益
在我們對(duì)應(yīng)用程序進(jìn)行打包簽名后,即表示此應(yīng)用程序是簽名人或機(jī)構(gòu)所開發(fā)的,對(duì)此應(yīng)用程序具有所有權(quán)。
(2)預(yù)防應(yīng)用程序替換
應(yīng)用程序簽名可以防止部分人通過使用相同的Package Name來混淆替換已經(jīng)安裝的程序,從而出現(xiàn)一些惡意篡改。APK如果使用一個(gè)key簽名,發(fā)布時(shí)另一個(gè)key簽名的文件將無法安裝或覆蓋老的版本,這樣可以防止你已安裝的應(yīng)用被惡意的第三方覆蓋或替換掉。實(shí)際上就是一種標(biāo)識(shí)。
(3)保證應(yīng)用程序版本的一致性
一般應(yīng)用程序都會(huì)有更新,即版本的升級(jí)。如果應(yīng)用程序的簽名不一致,是無法進(jìn)行更新替代的。所以應(yīng)用程序的簽名是保證當(dāng)前應(yīng)用程序順利進(jìn)行更新安裝的前提。
(4)可以通過權(quán)限(permission)的方式在多個(gè)程序間共享數(shù)據(jù)和代碼
Android提供了基于數(shù)字證書的權(quán)限賦予機(jī)制,應(yīng)用程序可以和其他的程序共享概功能或者數(shù)據(jù)給那那些與自己擁有相同數(shù)字證書的程序。如果某個(gè)權(quán)限(permission)的protectionLevel是signature,則這個(gè)權(quán)限就只能授予那些跟該權(quán)限所在的包擁有同一個(gè)數(shù)字證書的程序。另一方面,Android系統(tǒng)允許擁有同一個(gè)數(shù)字簽名的程序運(yùn)行在一個(gè)進(jìn)程中,Android程序會(huì)將他們視為同一個(gè)程序。所以開發(fā)者可以將自己的程序分模塊開發(fā),而用戶只需要在需要的時(shí)候下載適當(dāng)?shù)哪K。
以上就是Android Studio正式簽名進(jìn)行調(diào)試的實(shí)現(xiàn)步驟的講解,如何大家有什么疑問可以留言討論!感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
Android Studio如何查看源碼并調(diào)試的方法步驟
這篇文章主要介紹了Android Studio如何查看源碼并調(diào)試的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05Android使用ContentProvider實(shí)現(xiàn)跨進(jìn)程通訊示例詳解
這篇文章主要為大家介紹了Android使用ContentProvider實(shí)現(xiàn)跨進(jìn)程通訊示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03詳解Flutter手游操縱桿移動(dòng)的原理與實(shí)現(xiàn)
這篇文章將為大家詳細(xì)介紹一下Android?Flutter手游中操縱桿移動(dòng)角色的原理與實(shí)現(xiàn)過程,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-07-07Android中的廣播(BroadCast)詳細(xì)介紹
這篇文章主要介紹了Android中的廣播(BroadCast)詳細(xì)介紹,本文講解了什么是廣播、廣播有什么用、實(shí)現(xiàn)廣播、動(dòng)態(tài)注冊(cè)方式、配置文件方式等內(nèi)容,需要的朋友可以參考下2015-03-03Android實(shí)現(xiàn)一周時(shí)間早中晚排班表
項(xiàng)目需求需要實(shí)現(xiàn)一個(gè)動(dòng)態(tài)添加,修改一周早中晚時(shí)間排班表,文章給大家提供了實(shí)現(xiàn)代碼,需要的朋友參考下吧2018-07-07Android獲取雙卡雙待手機(jī)的SIM卡信息示例代碼
這篇文章主要給大家介紹了關(guān)于Android獲取雙卡雙待手機(jī)的SIM卡信息的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)各位Android開發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11