You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Android Studio后上传APK至Google Play遇签名无效错误求助

问题:Unity编译APK无报错,但上传Google Play提示签名无效(缺失META-INF/MANIFEST.MF)

背景

我开发的Unity 2018.1游戏正处于发布前夕(Beta转Release Candidate),此前一切正常,但升级Android Studio从rc6到rc7后,编译RC1版本APK时Unity无任何报错,上传Google Play却收到以下提示:

You uploaded an APK with an invalid signature (learn more about signing). Error from apksigner: ERROR: JAR_SIG_NO_MANIFEST: Missing META-INF/MANIFEST.MF

我接触Android开发仅4个月,经验不足。已确认:

  • 使用的是一直以来的keystore,未做任何修改
  • Unity Player Settings中的包名正确,预加载资源列表为空
  • 尝试上传至新的商店条目,错误依旧

目前正在尝试升级Android Studio并下载4.1到8.1的全部Android APIs,猜测可能和硬件依赖损坏清单文件有关。


解答

刚遇到这种临近发布的签名问题确实闹心!结合你的情况和Unity+Android Studio的兼容性特点,我整理了几个大概率的原因和排查方案:

1. Android Studio升级导致签名工具兼容性问题

你升级到AS rc7后,Unity可能默认调用了新版本的apksigner工具,而Unity 2018.1是比较旧的版本,和新apksigner的签名流程存在兼容性差异,导致MANIFEST.MF文件未被正确生成或签名。

解决尝试:

  • 手动用旧版签名工具jarsigner重新签名APK:
    1. 找到Unity编译生成的APK文件
    2. 执行签名命令:
      jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore 你的密钥库路径.jks 待签名APK路径.apk 密钥别名
      
    3. 用zipalign优化APK(Google Play要求):
      zipalign -v 4 签名后的APK路径.apk 优化后的APK路径.apk
      
    4. 上传优化后的APK到Google Play试试

2. Unity编译缓存或SDK路径异常

AS升级可能修改了系统默认的Android SDK路径,导致Unity编译时无法正确生成或打包MANIFEST.MF文件。

解决尝试:

  • 清理Unity编译缓存:点击Unity顶部菜单 File -> Build Settings -> Android -> Clean Build,清理完成后重新编译APK
  • 检查Unity的SDK配置:打开Edit -> Preferences -> External Tools,确认Android SDK路径指向的是AS rc7对应的SDK目录,或者尝试切换回之前rc6版本的SDK路径,重新编译测试

3. 第三方插件的清单文件冲突

如果你的游戏集成了第三方Android插件(比如广告、统计SDK),这些插件的清单文件配置可能和新的AS环境冲突,导致MANIFEST.MF生成异常。

解决尝试:

  • 暂时移除非核心的第三方插件,重新编译APK并上传测试,排查是否是插件导致的问题
  • 检查插件的AndroidManifest.xml文件,确认没有重复的权限、组件声明,或者和Unity生成的清单文件冲突的内容

4. Keystore的算法兼容性问题

虽然你没修改keystore,但新的apksigner对密钥算法的要求更严格,旧keystore的密钥算法可能不被支持。

解决尝试:

  • 用keytool检查keystore的密钥信息:
    keytool -list -v -keystore 你的密钥库路径.jks
    
    确认密钥的签名算法是SHA1withRSA或SHA256withRSA这类Google Play支持的算法。如果是更旧的算法,建议先尝试前面的方案,万不得已再考虑重新生成keystore(注意:发布前换keystore需谨慎,会影响后续版本更新)

另外,你提到的升级AS和下载全API的方案也可以尝试,但优先级不如前面的排查方向高。还可以试试将Unity项目导出为Android工程(Unity Build Settings中选择Export Project),然后在AS中手动签名打包,这样能快速定位是Unity编译的问题还是AS签名环节的问题。

内容的提问来源于stack exchange,提问作者Michael Macha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:38:22