Android里的應(yīng)用簽名

記一次版本檢測更新的bug

最近在做Android上的版本自動檢測與更新功能齐苛,所有功能都沒問題了驶冒,結(jié)果在新的apk文件覆蓋安裝環(huán)節(jié)出錯了:
(版本檢測與更新功能:版本信息及apk放在ftp服務(wù)上,客戶端檢測→發(fā)現(xiàn)新版本→下載apk文件→安裝apk)


華為P30急凰,Android 10

查了一下少欺,原因是新舊版本的apk文件簽名不同,有人給出的解決辦法是徹底卸載舊版應(yīng)用再重新安裝欣福。顯然,在版本更新這里不適用焦履。

我思考了一下拓劝,新版apk是我自己用AS生成的,簽名文件也是我自己生成的裁良。而舊版apk是由AS編譯完直接安裝的凿将,那問題應(yīng)該就在這里了校套,AS編譯完直接安裝的肯定沒用我的簽名文件...

找到問題了价脾,卸載、安裝生成的apk(不由AS安裝了)笛匙、調(diào)試版本更新功能侨把,成功。

這還不是最好的解決辦法妹孙,繼續(xù)往下看↓

另外說一句秋柄,調(diào)試盡量使用真機,因為模擬器只告訴了我“安裝包解析失敗”蠢正,是不是一臉懵逼骇笔?

應(yīng)用簽名的意義與使用

每個應(yīng)用都應(yīng)該有一個唯一的標(biāo)志來標(biāo)明身份,包名顯然不合適,太可能完全一樣了笨触,所以應(yīng)用簽名就負(fù)擔(dān)起了身份證的作用懦傍。有了這張身份證,就可以防止別人冒充你的應(yīng)用芦劣,比如把它覆蓋掉竊取用戶信息粗俱,想想都危險...當(dāng)然,我覺得你也要保護好自己的簽名文件和密碼~

那么虚吟,AS在debug時是誰給它簽名的呢寸认?

AS有一個默認(rèn)的簽名文件,位置:C:\Users\用戶.android\debug.keystore(win10)

可以看到串慰,AS debug時有自己的默認(rèn)簽名方式偏塞,既然跟我們生成apk使用的簽名文件不同,自然無法實現(xiàn)版本更新邦鲫。要徹底解決這個問題烛愧,讓我們在開發(fā)階段也可以愉快的測試版本更新功能,那就試試把AS debug的簽名文件也搞成我們自己的就行了掂碱,大家保持一致怜姿,愉快更新~

來解決第一節(jié)的問題:
辦法比較簡單,網(wǎng)絡(luò)上大多是這樣做的:
(來個鏈接疼燥,講的清晰的嘞:https://www.teachcourse.cn/2053.html)
1沧卢、首先要有一個簽名文件,沒有的話用AS自己生成一個醉者;
2但狭、在AS Build→Edit Build Types中打開Signing標(biāo)簽,尷尬撬即,我的3.4.1版本并沒有Signing立磁,遍尋無果,不著急剥槐,繼續(xù)往下看唱歧;
3、配置完Signing之后粒竖,在app模塊下的build.gradle文件生成配置信息颅崩,像這樣:

借鏈接內(nèi)的圖

4、完成蕊苗。

既然最終目的是在build.gradle文件生成配置信息沿后,那我們直接添加就好了。

先有一個簽名文件朽砰,我的是YXDFQD3.jks尖滚,然后打開app模塊下的build.gradle喉刘,添加如下內(nèi)容:

android{
    ...

    //signingConfigs標(biāo)簽用于配置自定義簽名文件
    signingConfigs {
        //使用YXDFQD3.jks簽名的配置(YXDFQD3.jks:生成apk時使用的簽名文件)
        Testconfig {
            keyAlias 'key0'
            keyPassword 'liuyubo'
            storeFile file('F:\\Project\\Android_Studio\\YXDTerminalManager\\YXDFQD3.jks')
            storePassword 'liuyubo'
        }
    }
    //指定AS debug時的簽名配置(默認(rèn)使用C:\Users\用戶\.android\debug.keystore),解決AS debug版與生成apk版本簽名不一致造成的更新安裝失敗問題
    buildTypes {
        release {
            minifyEnabled false //是否混淆
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.Testconfig
        }
        debug {
            signingConfig signingConfigs.Testconfig
        }
    }
    ...
}

然后同步、編譯再安裝漆弄,AS環(huán)境下也會使用我們指定的簽名文件了饱搏。保持一致~

but!
居然安裝失敗,錯誤信息提示:新舊版本簽名不一致置逻?推沸??明明已經(jīng)卸載了呀券坞,毛都沒有怎么不一致鬓催。
不要焦急,碰到這種莫名其妙的問題恨锚,試試clean project宇驾,事實上我還重啟了手機~

Done!

后記

今天的收獲呢

1、明白了簽名的意義猴伶,唯一標(biāo)志應(yīng)用课舍,算安全機制的一部分;
2他挎、知道了AS debug模式下默認(rèn)使用debug.keystore簽名筝尾;
3、signingConfigs標(biāo)簽可以讓我們自定義簽名方法办桨,替換默認(rèn)簽名筹淫,在版本更新這個應(yīng)用場景里就很適合。

應(yīng)用發(fā)布還是應(yīng)該學(xué)一學(xué)呢撞,也許能了解更多關(guān)于簽名或者其它知識损姜,雖然我從事的b2b模式目前還沒遇到過應(yīng)用商店發(fā)布的需求,我們都是直接給用戶apk殊霞,或者放在服務(wù)器上做個掃碼下載(這是我馬上準(zhǔn)備做的功能摧阅,try~)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末绷蹲,一起剝皮案震驚了整個濱河市棒卷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瘸右,老刑警劉巖娇跟,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件岩齿,死亡現(xiàn)場離奇詭異太颤,居然都是意外死亡,警方通過查閱死者的電腦和手機盹沈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門龄章,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吃谣,“玉大人,你說我怎么就攤上這事做裙「诒铮” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵锚贱,是天一觀的道長仔戈。 經(jīng)常有香客問我,道長拧廊,這世上最難降的妖魔是什么监徘? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮吧碾,結(jié)果婚禮上凰盔,老公的妹妹穿的比我還像新娘。我一直安慰自己倦春,他們只是感情好户敬,可當(dāng)我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著睁本,像睡著了一般尿庐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上呢堰,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天屁倔,我揣著相機與錄音,去河邊找鬼暮胧。 笑死锐借,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的往衷。 我是一名探鬼主播钞翔,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼席舍!你這毒婦竟也來了布轿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤来颤,失蹤者是張志新(化名)和其女友劉穎汰扭,沒想到半個月后咬像,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缘厢,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年言蛇,在試婚紗的時候發(fā)現(xiàn)自己被綠了滑黔。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片笆包。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡环揽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出庵佣,到底是詐尸還是另有隱情歉胶,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布巴粪,位于F島的核電站通今,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏肛根。R本人自食惡果不足惜衡创,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望晶通。 院中可真熱鬧璃氢,春花似錦、人聲如沸狮辽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽喉脖。三九已至椰苟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間树叽,已是汗流浹背舆蝴。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留题诵,地道東北人洁仗。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像性锭,于是被迫代替她去往敵國和親赠潦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 所有Android插件的基本擴展草冈。 你不需要直接使用這個她奥,你可以選擇下面幾個合適的直接使用 AppExtensio...
    我該忘了我自己w_u閱讀 3,360評論 0 5
  • 針對 Android 中簽名的相關(guān)問題,做一些記錄整理怎棱。 以前哩俭,遇到許多關(guān)于簽名的問題 APK 安裝時的校驗 成為...
    小小的coder閱讀 2,022評論 0 2
  • 概述 這個玩意簡單說起來很簡單,詳細(xì)描述起來很復(fù)雜拳恋,復(fù)雜在什么地方呢凡资,首先有一塊陌生的知識點,包括但不限于證書诅岩,數(shù)...
    千山萬水迷了鹿閱讀 7,456評論 3 18
  • [TOC] 打包流程 前言 我們每一個產(chǎn)品中一般都是由一位同事來負(fù)責(zé)打包工作的讳苦,其他同學(xué)一般是不需要關(guān)心具體的流程...
    鐘金寶閱讀 1,630評論 0 5
  • 當(dāng)前天數(shù):第20天带膜。 剩余天數(shù):80天吩谦。 參與人:我鸳谜。 路程:5圈。 地點:家里的小區(qū)跑步場式廷。 開始時間:06點3...
    Teratimes成長論閱讀 133評論 0 0