从谷歌游戏控制台派生的 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 工作正常的主要内容,如果未能解决你的问题,请参考以下文章