从谷歌游戏控制台派生的 apk 无法正常工作,但原始 apk 工作正常

Posted

技术标签:

【中文标题】从谷歌游戏控制台派生的 apk 无法正常工作,但原始 apk 工作正常【英文标题】:Derived apk from google play console not working but original apk working perfectly 【发布时间】:2020-10-10 08:57:11 【问题描述】:

我已在 Google Play 控制台中上传(更新)我的 apk。上传到 google play 后,我只需从 play store 下载并安装。当我尝试打开应用程序时它崩溃了。

我在 ionic 3 中创建的应用。

只有在我上传到 google play 后它才起作用。

我的 SHA1 证书也已正确提交。

E/androidRuntime: FATAL EXCEPTION: main

java.lang.RuntimeException: Unable to create application com.gae.scaffolder.plugin.Application: com.gae.scaffolder.plugin.MessageGuardException_RFA6IDMwNA: DP: 304 (RmluZ2VycHJpbnQgMjAxOTA3MDIgWy4rKysrLl0gYXJtZWFiaS12N2E6YXJtZWFiaS12N2EgMjYvMi4xLjAvLSBtb3Rvcm9sYS9hbGkvYWxpOjguMC4wL09QUzI3LjgyLTQ1LzU2OnVzZXIvcmVsZWFzZS1rZXlz)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5838)
    at android.app.ActivityThread.-wrap1(Unknown Source:0)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1674)
    at android.os.Handler.dispatchMessage(Handler.java:105)
    at android.os.Looper.loop(Looper.java:164)
    at android.app.ActivityThread.main(ActivityThread.java:6592)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:769)
 Caused by: com.gae.scaffolder.plugin.MessageGuardException_RFA6IDMwNA: DP: 304 (RmluZ2VycHJpbnQgMjAxOTA3MDIgWy4rKysrLl0gYXJtZWFiaS12N2E6YXJtZWFiaS12N2EgMjYvMi4xLjAvLSBtb3Rvcm9sYS9hbGkvYWxpOjguMC4wL09QUzI3LjgyLTQ1LzU2OnVzZXIvcmVsZWFzZS1rZXlz)
    at com.gae.scaffolder.plugin.Application.onCreate(Unknown Source:169)
    at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1140)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5835)
    at android.app.ActivityThread.-wrap1(Unknown Source:0) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1674) 
    at android.os.Handler.dispatchMessage(Handler.java:105) 
    at android.os.Looper.loop(Looper.java:164) 
    at android.app.ActivityThread.main(ActivityThread.java:6592) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:769) 
 Caused by: java.lang.UnsatisfiedLinkError: DP: 304
    at com.gae.scaffolder.plugin.Application$Application.wuxig(Unknown Source:690)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.gae.scaffolder.plugin.Application$Application.Honlx(Unknown Source:99)
    at com.gae.scaffolder.plugin.Application$Application.loqunIlzz(Unknown Source:201)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.gae.scaffolder.plugin.Application.onCreate(Unknown Source:117)
    at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1140) 
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5835) 
    at android.app.ActivityThread.-wrap1(Unknown Source:0) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1674) 
    at android.os.Handler.dispatchMessage(Handler.java:105) 
    at android.os.Looper.loop(Looper.java:164) 
    at android.app.ActivityThread.main(ActivityThread.java:6592) 

所以我从谷歌播放控制台下载了我的 apk。我有两个 apk,派生 apk原始 apk

两者有什么不同? 我原来的 apk 运行良好,但派生的 apk 崩溃。为什么?

提前致谢。

【问题讨论】:

【参考方案1】:

您可能有一些防篡改机制来检查 AndroidManifest.xml 文件的完整性或验证您的应用所使用的证书。

由于您的应用注册了 Play App Signing,因此 Play 在清单中添加了一个元数据并重新签署了您的 APK(即“派生的 APK”),并且您的防篡改库似乎using 对这种做法不友好,因此在检测到这些修改之一时会崩溃。

如果您使用 dexguard,请确保使用 8.3 之后的版本:https://www.guardsquare.com/en/blog/dexguard-83-released

【讨论】:

您好,感谢您的回复。我没有使用dexgurad。它在早期版本中运行良好。现在我只是将 targetsdkversion 更改为 29。这会导致任何问题吗? com.gae.scaffolder.plugin 是你的包名吗?这是引发异常的代码,因此知道它是什么会有所帮助。 该软件包包含 fcm 插件代码。如果我删除 fcm 插件,Cordova-plugin-notificatin 会再次引发此错误 您好,感谢您的帮助。我在这里找到解决方案“dexprotector.com/node/4267#googke-signing” 啊,原来你使用了防篡改机制!顺便说一句,该链接不起作用。

以上是关于从谷歌游戏控制台派生的 apk 无法正常工作,但原始 apk 工作正常的主要内容,如果未能解决你的问题,请参考以下文章

从谷歌地图drawingManager V3中删除多边形

从谷歌静态地图中的像素坐标获取经度/纬度

房间配置在安卓的谷歌实时多人游戏服务中无法正常工作

无法从谷歌电子表格中读取

如何从谷歌玩游戏中选择和加载保存的游戏快照

谷歌地图在发布apk中显示空白屏幕,在调试模式下工作正常