Выделение встроенных служб Google в APK

#java #android #firebase #react-native #apk

#java #Android #firebase #react-native #apk

Вопрос:

Мне было интересно, может ли кто-нибудь помочь мне создать собственный модуль для Android, чтобы прочитать мой google-services.json файл, используемый для Firebase, я обычно извлекаю определенное значение из объекта JSON и показываю его разработчику. Однако я не уверен, где он находится в самом APK.

У меня есть два разных google-services.json файла. Структура моего проекта содержит следующие project/android/app/src/debug/google-services.json и project/android/app/src/release/google-services.json . Любая помощь более чем приветствуется, я просто не понимаю, куда копируются файлы в фактическом APK, чтобы я мог программно перейти, прочитать его и извлечь значения для соответствующих ключей.

Ответ №1:

Этот файл не включен в ваше приложение так, как вы себе представляете. Плагин Gradle служб Google анализирует его во время сборки и вводит некоторые из его значений в виде строковых ресурсов в ваше приложение. Если вы хотите прочитать эти значения, просто определите, какой строковый ресурс вам нужен, и получите к нему доступ, как к любому другому строковому ресурсу.

Документация о том, что на самом деле делает плагин службы Google во время сборки, находится здесь. Вы можете видеть, что он генерирует строковые ресурсы, которые выглядят следующим образом:

 <?xml version="1.0" encoding="utf-8"?>
<resources>

    <! -- Present in all applications -->
    <string name="google_app_id" translatable="false">1:1035469437089:android:73a4fb8297b2cd4f</string>

    <! -- Present in applications with the appropriate services configured -->
    <string name="gcm_defaultSenderId" translatable="false">1035469437089</string>
    <string name="default_web_client_id" translatable="false">337894902146-e4uksm38sne0bqrj6uvkbo4oiu4hvigl.apps.googleusercontent.com</string>
    <string name="ga_trackingId" translatable="false">UA-65557217-3</string>
    <string name="firebase_database_url" translatable="false">https://example-url.firebaseio.com</string>
    <string name="google_api_key" translatable="false">AIzbSyCILMsOuUKwN3qhtxrPq7FFemDJUAXTyZ8</string>
    <string name="google_crash_reporting_api_key" translatable="false">AIzbSyCILMsOuUKwN3qhtxrPq7FFemDJUAXTyZ8</string>
    <string name="project_id" translatable="false">mydemoapp</string>

</resources>