有证书签署android unsigned release apk文件,所以我使用命令导入了cer:
keytool -import -alias alias_name -file cer_name.cer -storepass changeit -keystore my_keystore.keystore
Run Code Online (Sandbox Code Playgroud)
但是当用android studio签署应用程序时,它会产生错误:
Error:Execution failed for task ':packageDebug'.
> com.android.ide.common.signing.KeytoolException: Failed to read key alias_name from store "C:\Users\username\my_keystore.keystore": trusted certificate entries are not password-protected
Run Code Online (Sandbox Code Playgroud)
我的扣除说,因为密钥没有密码保护所以我再次尝试并使用以下方法设置密钥密码:
keytool -import -alias alias_name -file cer_name.cer -storepass changeit -keypass changeit -keystore my_keystore.keystore
Run Code Online (Sandbox Code Playgroud)
但仍然存在错误.
我也尝试过与jarsigner的手动程序:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my_keystore.keystore unsigned-release.apk alias_name
Run Code Online (Sandbox Code Playgroud)
得到错误:
jarsigner: Certificate chain not found for: alias_name. alias_name must reference a valid KeyStore key entry containing a …Run Code Online (Sandbox Code Playgroud) 我试图在 AOSP 版本 10 中添加 APK 作为系统应用程序。我已按照几乎不同的链接中提到的过程进行操作,该链接位于此处Add apk in AOSP但没有任何效果。此链接中提到的过程以及我遵循的步骤是:
Aosp_root/packages/apps/my-app-folder/my-app.apkAndroid.mk在my-app.apk/my-app-folder代码Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := Signal
LOCAL_CERTIFICATE := platform
LOCAL_SRC_FILES := Signal-website-universal-release-4.55.8.apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
include $(BUILD_PREBUILT)
Run Code Online (Sandbox Code Playgroud)
PRODUCT_PACKAGES,core.mk否则common.mk我无法在指定目录 ( ) 中找到两个指定文件 (core.mk或) 。但我在文件夹中找到了文件,并在该文件中找到了该文件并在其中添加了 my-app 的目录。common.mkbuild/target/productsgsi-common.mkbuild/target/productPRODUCT_PACKAGES这是 的代码gsi-common.mk。
`PRODUCT_PACKAGES += \ …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用此代码使用 APK 签名者手动签署 APK
apksigner sign --ks D:\Android\SDK\keystores\release.keystore --ks-key-alias uploadcertificate --out app-release.apk app.apk
Run Code Online (Sandbox Code Playgroud)
但这给了我一个错误
Failed to load signer "signer #1": D:\Android\SDK\keystores\release.keystore entry "uploadcertificate" does not contain a key
Run Code Online (Sandbox Code Playgroud)
但是,当我使用 keytool 列出密钥库中的别名时,我可以看到别名 uploadcertificate。
keytool -v -list -keystore D:\Android\SDK\Keystores\release.keystore
Enter keystore password:
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 1 entry
Alias name: uploadcertificate
Creation date: May 21, 2018
Entry type: trustedCertEntry
Owner: C=US, O=Android, CN=Android Debug
Issuer: C=US, O=Android, CN=Android Debug
Serial number: 1
Valid from: Mon Feb 13 …Run Code Online (Sandbox Code Playgroud) 由于ApkSigner在版本24.0.3及更高版本的Android SDK Build Tools中可用.我有一个问题ApkSigner和JarSigner有什么区别?为什么我们需要ApkSigner?
我可以在命令行中为两位签名者签署Apk吗?
在 Visual Studio 中创建 APK 时出现此错误:
Failed to load signer "signer #1": C:\...\googleplay.keystore entry "googleplay" does not contain a key
Run Code Online (Sandbox Code Playgroud)
我是熟悉 Visual Studio 的长期 ASP.NET 开发人员,但这是我的第一个 Xamarin 项目。(我没有使用 Android Studio。)我正在尝试将 Android 版本部署到 Google Play。我从来没有上传过APK到Google Play,所以我无法使用Visual Studio的自动部署;我必须首先按照 Google 和 Microsoft 的说明执行手动部署。
我正在使用 JDK 1.8 运行 Visual Studio 2017 15.7.5(最新)。我的项目使用 NETStandard.Library 2.0.3、Xamarin.Forms 3.1.0 和 Microsoft.EntityFrameworkCore 2.1.1。
这个问题类似于这个没有答案的问题,但我从 Visual Studio 中收到错误。如果这是重复的,我深表歉意,但我无法添加有关该问题的其他详细信息。
我正在使用 Google Play 应用签名。我已经通过 Google Play 创建了一个密钥。我下载了 .der 格式的证书。我使用 keytool(来自 c:\Program Files\Java\jdk1.8.0_172\bin)使用以下命令将 .der 文件转换为 .keystore:
keytool -importcert -alias googleplay -file …Run Code Online (Sandbox Code Playgroud) 规格:
我正在尝试使用 apksigner 签署 apk。我在 Android Studio 终端中使用此命令
apksigner sign --ks release.jks app.apk
Run Code Online (Sandbox Code Playgroud)
我正在遵循官方文档,但收到此错误
bash: apksigner: command not found
Run Code Online (Sandbox Code Playgroud)
当我进一步挖掘时,我发现 Android/sdk/cmdline-tools/7.0/bin 没有 apksigner,它有以下命令行工具
我在这里缺少什么?我尝试下载cmdline-tools/6.0,3.0但没有看到 apksigner。
由于最近的 SHA1 冲突新闻,我想确保在我的 apk 签名中不再使用 SHA1。但是我在apksigner 中找不到参数。
有没有办法指定(直接或间接)apksigner 使用的摘要算法?
(在 SDK 24 之前,Android 使用 javajarsigner来签署 apk,其中有类似的选项-sigalg SHA1withRSA -digestalg SHA1)
更新:正如亚历克斯提到的,我apksigner在V1SchemeSigner.java 中找到了如何确定方案 v1 的签名算法。
简而言之,apksigner从minimumSDK证书和密钥类型来确定它。
SHA256withRSA 最低 SDK 18 (Android 4.3) 及以上SHA256withDSA 最低 SDK 21 (Android 5.0) 及以上SHA256withEC 最低 SDK 18 及以上SHA1with* 用于较低的最低 SDK 级别这是我为备忘而写的常见问题解答:SHA1 Collision and Android APK Signing。
我在 2010 年发布了一个应用程序。那时,我创建了一个本地密钥库和一个密钥,我从未更改过并用于我从那时起发布的这个应用程序的所有(大约 30 个)版本。
我从来没有遇到过任何问题,在我用 Eclipse 开发的日子里,它总是工作得很好,最近几年我切换到 Android Studio 时也没有。
我发布的最后一个版本是 2016 年 12 月 23 日。现在我想发布一个新的,用 Android Studio 生成一个签名的 APK,将它上传到开发者控制台......并收到以下错误消息:
上传失败 - 您上传的 APK 签名无效(了解有关签名的更多信息)。来自 apksigner 的错误:错误(Jar 签名者 CERT.DSA):JAR 签名 META-INF/CERT.DSA 使用摘要算法 SHA-1 和带有 DSA 的签名算法 SHA-1 这在 API 级别 8 上不受支持,为此APK 正在验证中
我尝试了(新可用的)签名版本选项的这些组合(始终具有相同的结果):
我将 Android Studio 2.3.3 与 buildToolsVersion 25.0.0 和 Gradle 3.3 版一起使用。
我试图用 apksigner 验证最新的 Gmail 应用程序(版本 8.11.25.224)的签名,但失败了。
我用了:
apksigner verifiy --verbose --print-certs <apk.file>
结果是:
DOES NOT VERIFY
ERROR: APK Signature Scheme v2 signer #1 Malformed additional attribute #1
Run Code Online (Sandbox Code Playgroud)
我正在寻找为什么会发生这种情况的解释,但我找不到任何解决此问题的方法。我已经进行了一些实验,如果您添加--min-sdk-version 28到 apksigner 命令的选项中,那么结果是:
Verified using v1 scheme (JAR signing): false
Verified using v2 scheme (APK Signature Scheme v2): false
Number of signers: 1
Signer #1 certificate DN: CN=Android, OU=Android, O=Google Inc., L=Mountain View, ST=California, C=US
Signer #1 certificate SHA-256 digest: f0fd...
Signer #1 certificate SHA-1 digest: 3891...
Signer #1 certificate …Run Code Online (Sandbox Code Playgroud) 我用于签署Android应用的密钥是使用Android Studio生成的.当我尝试从Android Studio生成签名的APK时,它工作正常.
但是,当我尝试使用apksigner工具进行签名时,相同的密钥不起作用.这是我正在使用的命令.
apksigner sign --ks mykey.jks --ks-key-alias MyAlias --out app-myapp-release.apk app-myapp-release-aligned.apk
我收到以下错误:
java.io.IOException:密钥库被篡改,或密码不正确
有什么建议?
**更新**Android Studio版本2.2.3密钥库是使用"生成"菜单中的"生成签名APK"对话框生成的.