Не удалось найти действительный список GoogleService-Info.plist после обработки другой конфигурации во фразе сборки - PullRequest
0 голосов
/ 02 июля 2018

Я работаю над использованием firebase для тегов в приложении iOS.

У меня другая конфигурация в app, dev, prod, preprod, appStore. Таким образом, у меня есть несколько GoogleService-Info.plist в проекте.

Я переименовал их в GoogleService-Info-Prod.plist, GoogleService-Info-Dev.plist, в папку Resources.

Я добавил скрипт запуска в фразу сборки проекта,

cp "$ {SRCROOT} /Test/Resourses/Firebase/GoogleService-Info-$CONFIGURATION.plist" "$ {SRCROOT} /Test/Resourses/Firebase/GoogleService-Info.plist" Я собираюсь скопировать содержимое GoogleService-Info-blabla.plist в GoogleService-Info.plist.

Но, видимо, у меня есть эта ошибка:

2018-07-02 19: 05: 27.295083 + 0200 Тест [PROD] [63021: 19806839] *** Завершение работы приложения из-за необработанного исключения 'com.firebase.core', причина: '[FIRApp configure]; (FirebaseApp.configure() в Swift) не удалось найти действительный список GoogleService-Info.plist в вашем проекте. Пожалуйста, загрузите один из https://console.firebase.google.com/.'

Есть идеи, где я допустил ошибку? Большое вам спасибо за внимание.

1 Ответ

0 голосов
/ 02 июля 2018

Я полагаю, что в вашем подходе есть несколько проблем

Выпуск 1:

Я считаю, что простое копирование файла в папку не поможет, вам нужно добавить файл в проект и изменить его целевое членство на конкретную цель, которую вы используете. Вам нужно добавить файл в Copy Bundle Resources в фазе сборки конкретной цели, с которой вы работаете.

Выпуск 2:

Также, хотя вы изменили имя файла GoogleService-info.plist name, Firebase все еще ищет GoogleService-info.plist, а не ваш переименованный файл, следовательно, сбой.

Как упоминалось здесь, на github.com/firebase/quickstart-ios/issues/5 вы не можете изменить имя файла, файл должен быть назван как GoogleService-info.plist. Таким образом, копирование всего файла не будет работать.

Возможное решение:

Вместо того, чтобы копировать файл, у вас есть пустой plist-файл с именем GoogleService-info.plist. Убедитесь, что у вас правильно помечено членство в целевой группе, а также он добавлен в ресурс копирования пакетов вашей цели. Скопируйте другой файл GoogleService-Info-Configuration.plist в свой проект.

Затем, в вашем скрипте запуска, прочитайте содержимое из определенного GoogleService-Info- {Configuration} .plist и просто скопируйте содержимое файла в ваш GoogleService-info.plist

Используя что-то вроде

cat "${SRCROOT}/Test/Resourses/Firebase/GoogleService-Info-$CONFIGURATION.plist"  > "${SRCROOT}/Test/Resourses/Firebase/GoogleService-Info.plist"

Или как OP, упомянутый в его комментарии, использовать

cp "${SRCROOT}/Turf/Resourses/Firebase/GoogleService-Info-$CONFIGURATION.plist" "${SRCROOT}/Turf/Resourses/Firebase/GoogleService-Info.plist"

Я не тестировал вставленный выше сценарий оболочки, хотя он должен дать вам довольно простое представление о том, как решить проблему.

...