Android Studio打包未簽名包


Android Studio打包未簽名包

好久沒有寫技術博客了,真有點懈怠了,作為35歲的程序員,轉行重新撿起這些知識,還是挺猶豫糾結的,不過沒啥其它辦法,一點一滴開始吧,今天這開篇就小結點前幾天工作中遇到的關於如何通過Android Studio打包未簽名包。

打包未簽名包

因為並不是從基礎一步一步學起的,所以很多東西都是現有工程結合網上知識混着用一下,能解決問題就行了,現在的程序員,特別是小公司的程序員,一般能找到現成解決方案實現項目需求就可以了。哪有那么多時間去一步一步分析每一行代碼的來由呢。轉戰Android Studio,還是參照Android Studio系列教程六--Gradle多渠道打包來編寫build.gradle文件的,平時打包也好好的,突然來個需求說是要打包一個為簽名包,第一反應居然不是修改build.gradle,而是去上網搜索,結果五花八門的答案啊。連stackoverflow上的Android: Build Unsigned APK with Gradle對我來說也是不適用,不過根據他的原理,我就想着干脆把build.gradle文件中“buildTypes”的“release”選項中的“signingConfig signingConfigs.release”這一項刪除掉試試看,結果還真的打了一個包出來。

那么通過上述方法打出來的這個包是否符合要求呢?
試了安裝,結果安裝不成功,報解析錯誤,命令行報錯如下

Failure [INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION]

查看簽名信息

因為裝不上,報錯說解析錯誤,是不是打包正確了呢?
雖然自己以前曾整理過一篇關於Android開發中的證書和密鑰等問題的小隨筆,但是當時是圍繞證書展開的,至於apk以后怎么着,當時沒有涉及。於是又去搜索一通看到一篇查看APK的簽名的方法,里面的方法,無非就是將apk進行解壓縮,然后看看里面有沒有META-INF文件夾,有的話就可以查看證書信息,沒有的話就是沒有簽名。於是我解壓縮了下剛剛生成的無簽名包,果然是沒有

手動簽名

但是這個打出來的未簽名的包到底能不能用呢?
我不知道有沒有什么好的驗證方法,我能想到的就是手動再給它簽名,雖然上文中的《查看APK簽名的方法》一文中有提到用jarsigner給空白包簽名,但是我嘗試着簽過以后發現簽是簽了,但是報如下錯誤

警告:
未提供 -tsa 或 -tsacert, 此 jar 沒有時間戳。如果沒有時間戳, 則在簽名者證書的到期日期 (2034-01-10) 或以后的任何撤銷日期之后, 用戶可能無法驗證此 jar。

將簽完名的包嘗試進行安裝,還是安裝失敗,在eoe上有個帖子Android之apk文件簽名——keytool 和 jarsigner的使用,里面也有網友提到相關的問題,有說因為操作系統64位相關的,也有說因為jdk版本的,但是沒有看到具體解決方法。后來我又找了幾篇文章,類似APK簽名之keytool生成keystore和jarsigner簽名apkAndroid 使用Android Studio + Gradle 或 命令行 進行apk簽名打包,然后對我來說也是沒什么起作用。
於是乎我就放棄了自己用命令行來簽名了。最后在網上找了一個綠色免安裝的APKSign工具,將證書和密碼輸入之后就妥妥的了,類似如下

至於APKsign工具,如果有興趣可以去我的百度雲盤下載

其實都是很基礎的東西,也不知道有沒有更便捷的方法來打包生成未簽名包,然后進行該包的正確性。如果有更好的方法希望能夠留言提供一下哦,謝謝了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM