Android Studio 如何在源代码中隐藏AdMob应用程序ID

m0rkklqb  于 2022-12-13  发布在  Android
关注(0)|答案(2)|浏览(166)

我想在版本控制中隐藏我的AdMob应用ID和广告单元ID。我尝试过创建一个单独的文件来存储密钥,然后在java中阅读该文件。但由于我必须在Android Manifest中使用应用ID,因此无法做到这一点。如何实现这一点?

j8ag8udp

j8ag8udp1#

简单的回答是不可以。你必须将App Id存储在字符串中的某个地方,并在清单中设置它,因为你不能在运行时更改它。
你能做的最好的事情是,在原生c++中存储广告id,并在运行时检索它们。
有人仍然可以找到你的广告id,但这比从dex类或字符串XML中找到它们要难,因为它们显示为纯文本。

kkih6yb8

kkih6yb82#

老问题了,不过我找到了个好办法。
你可以使用**secrets gradle plugin for android**由谷歌开发,这个插件是专为谷歌MapAPI键,但你可以使用任何你想隐藏的关键。
也有一些警告:

免责声明:此插件主要用于在版本控制中隐藏您的密钥。由于您的密钥是静态二进制文件的一部分,您的API密钥仍然可以通过反编译APK来恢复。因此,建议使用其他措施来保护您的密钥,如添加限制(如果可能)。

当你添加插件,你需要写在local.properties的admob应用程序id像这样

ADMOB_APP_ID="ca-app-pub-XXXXXX~XXXXX"

最后,在manifest中使用以下格式放置变量:

<meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="${ADMOB_APP_ID}" />

这就是全部,应用程序工作与隐藏admob id

相关问题