Могу ли я использовать один и тот же Firebase GoogleService-Info.plist для двух приложений iOS, которые имеют разные идентификаторы пакетов?

#ios #firebase #unity3d

#iOS #firebase #unity3d

Вопрос:

Во время разработки мы запускаем внутренние тесты в нашей компании Testflight, которые никогда не запускаются, но затем запускаем игры в клиентском Testflight. В результате у нас получается два разных идентификатора пакетов, где внутренний идентификатор пакета — что-то вроде com.mycompany.client.appname, а у клиента — com.clientcompany.appname.

Обычно мы добавляем второй GoogleService-Info.plist, поскольку Firebase регистрирует сообщение об этом (что, по-видимому, должно быть фатальной ошибкой):

Идентификатор пакета проекта org.icivics.ratify не соответствует идентификаторам пакетов в ваших файлах GoogleServices-Info.plist. Это приведет к тому, что приложение не сможет инициализироваться.

Однако недавно приложение запустилось только с GoogleService-Info.plist для внутреннего идентификатора пакета. Тем не менее, панель мониторинга, похоже, правильно сообщает показатели, несмотря на то, что находится в приложении с идентификатором пакета, который не совпадает с идентификатором в GoogleService-Info.plist. Поскольку показатели все еще публикуются, я не уверен, стоит ли мне беспокоиться об этом.

Каковы последствия, если мы не отправим обновление с правильным GoogleService-Info.plist?

Ответ №1:

GoogleService-Info.plist Файл для проекта содержит информацию обо всех приложениях iOS в этом проекте Firebase. Когда вы инициализируете приложение Firebase в своем коде, оно ищет данные конфигурации для текущего приложения на основе его идентификатора пакета.

Если вы используете устаревший GoogleService-Info.plist в своем приложении, возможно, он не сможет найти информацию для приложения. В этом случае Firebase не сможет инициализироваться и выдаст ошибку.

Комментарии:

1. «Файл GoogleService-Info.plist для проекта содержит информацию обо всех приложениях iOS в этом проекте Firebase». Это неправда; для каждого приложения требуется свой собственный файл GoogleService-Info.plist.

2. «Если вы используете устаревший GoogleService-Info.plist в своем приложении, возможно, он не сможет найти информацию для приложения. В этом случае Firebase не сможет инициализироваться и выдаст сообщение об ошибке». Об этом я знаю, однако, как указано в первоначальном вопросе, приложение отслеживает показатели в обычном режиме, несмотря на документацию / ошибки, говорящие об обратном.

3. Интересно. Analytics определенно использует один ключ для всех приложений в проекте. Но я ожидаю, что для отчета о событиях на уровне приложения все равно потребуется некоторая информация, относящаяся к конкретному приложению. Опять же: может быть, он просто отправляет идентификатор приложения / идентификатор пакета на сервер, который затем может искать их по мере необходимости.