签名 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在微信中二维码扫描无法下载的解决方案