Является ли google-services.json конфиденциальным?

Следуя руководству по настройке Google Analytics в приложении для Android ( https://developers.google.com/analytics/devguides/collection/android/v4/), я задаюсь вопросом, можно ли безопасно зафиксировать этот файл google-services.json в версии исходного кода и отправлены в общедоступный репозиторий GitHub или если этот файл может содержать учетные данные или секреты.

Я не могу найти определенный ответ в другом месте, но я вижу, что примеры приложений фиксируют файл ( https://github.com/google/climb-tracker/blob/master/mobile/google-services.json) и другие добавили файл к их.gitignore.

5 ответов

Решение

Это следует считать конфиденциальным. Сгенерированный файл JSON содержит api_key что вы можете использовать для отправки push-уведомлений.

Если вы перейдете на страницу "Учетные данные" в консоли разработчика Google, вы увидите ключ в файле json, указанный в разделе API keys

Из этого поста, похоже, нет реальной причины хранить этот файл в безопасности. Все равно эти данные будут в APK.

Да. По крайней мере api_keyвещи должны быть конфиденциальными.

Один из способов поставить google-services.json в ваш общедоступный репозиторий и по-прежнему сохранять его конфиденциальность, это использовать BlackBox.

На уровне вашего приложения build.gradle например, поставить задачу копирования defaultConfig как это:

defaultConfig {
    ...
    ...
    copy {
        from "../secret/"
        into "."
        include "*.json"
    }
}

который скопирует файл из вашего secret/ папка в нужное место.

Теперь, чтобы создать приложение, вам нужно запустить blackbox_edit_start google-services.json.gpg в первый раз вы проверяете свой репо, и после этого у вас все хорошо.

не является конфиденциальным, но следует ограничить ключи API именем и подписью пакета. Если не ограничивать эти ключи API, их можно было извлечь из пакета и использовать (а также оплачивать).

значения изgoogle_services.jsonхранятся в виде простого текста вresources.arscфайл. Этот файл хранится в зашифрованном виде в apk, и его можно прочитать, простоunzip-ing apk. Я бы сказал, что по этой причине он не может хранить ценные данные.