#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 определенно использует один ключ для всех приложений в проекте. Но я ожидаю, что для отчета о событиях на уровне приложения все равно потребуется некоторая информация, относящаяся к конкретному приложению. Опять же: может быть, он просто отправляет идентификатор приложения / идентификатор пакета на сервер, который затем может искать их по мере необходимости.