Google Play突然反对我的应用签名无效

时间:2018-05-25 01:43:34

标签: android unity3d google-play manifest signing

我的应用程序正好在其发布日期之上(从Beta发布到候选版本)。一切都很好,但我刚刚将Android Studio从rc6升级到了rc7。应用程序(游戏)是使用Unity 2018.1开发的,所有内容似乎都很好;但是在将apk上传到Play商店时,我突然收到了消息:

“您上传了一个签名无效的APK(了解有关签名的详情)。来自apksigner的错误:错误:JAR_SIG_NO_MANIFEST:缺少META-INF / MANIFEST.MF”

我不是一位经验丰富的Android开发人员(也许是四个月前才进入它),所以我不完全确定这是什么。我和以前一样使用相同的密钥库,Unity在没有投诉的情况下编译APK。 (这实际上是rc1编译。)

任何人都可以告诉我可能有什么变化吗?我的签名/清单发生了什么变化?

(附录:)

根据要求,我的播放器设置的截图来自Unity。请注意,我已经验证包名称是完全准确的,预加载的资产是一个空列表,并且没有对我的密钥库进行任何更改。此外,我们尝试将APK上传到新的商店条目,以防万一,我们得到了完全相同的错误。

Player settings for erroneous project

目前,我们正在尝试进一步升级Android Studio,并下载其他Android API(从4.1到8.1的所有内容,而不仅仅是部分内容)。尽管术语“API”具有传统含义,但在我看来,它可能与硬件依赖关系相关,并且可能会破坏清单文件。如果它能解决任何问题,我一定会自己回答。

2 个答案:

答案 0 :(得分:1)

解决了!

似乎由于某种原因,更新SDK会让我没有某些API级别。这可能会导致可编辑的,但相当混乱的APK; Google Play正在寻找不存在的块的清单引用。

为了说明,我将我的应用程序设置为在4.1(API 16)到8.1(API 27)上运行。我的系统上只有API 27。为什么这不会导致编译器发出至少警告,老实说我不知道​​;但是在进入android SDK的bin目录并运行:

之后
sdkmanager "platforms;android-[API number]"

对于我缺少的每个API,然后重新启动(Windows和所有...),它编译了一个在商店接受的足够的APK。

整个考验实际上非常令人筋疲力尽,如果我舒服地靠近裸露的金属,解决方案可能是显而易见的。道德?在确定您有一些消耗性日期之前,请不要更新SDK中期项目。

希望这个解决方案可以帮助其他人解决同样的问题。

答案 1 :(得分:0)

检查您的密钥库。你使用过相同的别名吗?您必须使用相同的别名。