簡體   English   中英

簽名后不運行 apk 文件(簽名 apk 后解析 package 時出現問題。)

[英]Not running the apk file after signing (Problem in parsing the package after signing the apk.)

我使用以下代碼從程序中獲得了 apk output

flutter build apk --split-per-abi --obfuscate --split-debug-info=<directory>

而不是,我寫了存儲路徑,得到了三個output的文件,除了--obsfucate,代碼可能已經被遮擋了。 現在我使用以下代碼創建了一個密鑰庫

keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

我沒有輸入昵稱,而是輸入了所需的密鑰名稱,然后按回車鍵輸入了所需的信息。

現在我把 app-armeabi-v7a-release.apk 文件放在這個鍵旁邊並寫了下面的代碼

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore app-armeabi-v7a-release.apk alias_name

而不是 alias_name,我寫了我的鍵的名稱,然后按回車鍵,它顯示了以下文本

jar 簽名。

警告:簽名者的證書是自簽名的。 為 -digestalg 選項指定的 SHA1 算法被認為存在安全風險並被禁用。 為 -sigalg 選項指定的 SHA1withRSA 算法被認為存在安全風險並被禁用。 檢測到 POSIX 文件權限和/或符號鏈接屬性。 這些屬性在簽名時會被忽略,並且不受簽名保護。

但是現在我把apk文件放到每部手機里,都說解析package有問題。

我注意到的第一件事是,您使用jarsigner 通過 CLI 對 APK 文件進行簽名的推薦方法是使用apksigner ,它是官方 Android SDK命令行工具(此鏈接也可能解決其他問題)的一部分,當然也是 Android Studio 的 APK 構建工具鏈的一部分。 查看 Android Dev Docs 如何手動簽署您的 APK

問題是, jarsigner既不支持較新的APK 簽名方案,也不了解某些細節,例如需要在 API Level <= 17 上運行的 APK 不得使用 SHA-256。 因此,我認為將APKSIGNER與適當的選項(特別是簽名方案)一起解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM