签名 Apk 无法识别

Posted

技术标签:

【中文标题】签名 Apk 无法识别【英文标题】:Signing Apk Not Recognized 【发布时间】:2016-11-25 05:30:32 【问题描述】:

我正在尝试部署由 Cordova 创建的 android apk,但我错了。这是我的过程:

1)构建发布apk:cordova build android --release

2) 生成密钥库:keytool -genkey -v -keystore my-release-key.keystore -alias com.MyCompany.AppsName -keyalg RSA -keysize 2048 -validity 10000 我创建了名为 MyPass 的密码,并在表单中写入所有信息(姓名、国家、...)

3) 签署应用程序:jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore android-release-unsigned.apk com.MyCompany.AppsName

4) 已检查签名:jarsigner -verify -verbose -certs android-release-unsigned.apk 我得到这个输出:

"jar 已验证。 警告: 此 jar 包含未验证证书链的条目。 此 jar 包含不包含时间戳的签名。如果没有时间戳,用户可能无法在签名者证书的到期日期 (2043-12-07) 或任何未来的吊销日期之后验证此 jar。"

5)压缩 Apk:"c:\pathtosdk\zipalign.exe" -v 4 android-release-unsigned.apk com.MyCompany.AppsName.apk 6)然后我将 Apk 复制到 android 设备上。

但是当我尝试安装应用程序时,设备要求我允许未知来源...就像它没有签名一样。 有谁知道我错在哪里?

提前致谢

【问题讨论】:

如果可能的话,您可以将您的项目导入 Android Studio,那么签名过程会容易得多。如果出现任何问题,您将获得更好的支持和错误处理。它具有用于生成签名 apk 的内置向导。无需回复 keytool。您还可以导入之前创建的密钥库文件。谢谢 @rdecla 你找到解决办法了吗? 【参考方案1】:

您的 apk 可能已签名并且非常好。它要求允许未知来源的原因是因为默认情况下它不允许从 google play 商店以外的其他来源安装 .apk 文件。安全问题 https://support.google.com/nexus/answer/2812853?hl=en

【讨论】:

【参考方案2】:

如果您没有从 Play 商店下载应用程序,您将收到这样的消息,这对您来说是正确的。这与正在签名的应用程序没有任何关系。

【讨论】:

【参考方案3】:

尝试安装一个派生的 apk。首先在 Play 商店的 Alpha Release 中发布您的应用。然后从 alpha 版本下载派生的 apk。我认为这会有所帮助。

【讨论】:

以上是关于签名 Apk 无法识别的主要内容,如果未能解决你的问题,请参考以下文章

Electron builder 代码签名:bundle 格式无法识别、无效或不合适

使用 gon 的 goreleaser 签名 - 捆绑格式无法识别、无效或不合适

添加了结算权限,Google Play无法在APK中识别出来

apk文件二维码微信无法识别 APP在微信中二维码扫描无法下载的解决方案

PyCharm 无法识别没有冗余 __init__ 的 SqlAlchemy 声明性子类签名

Google Glass - 安装 APK 时出错