Crashlytics для Firebase | Скрипт запуска Swift Package Manager (SPM)?

Я хочу добавить Crashlytics в свое приложение с помощью диспетчера пакетов Swift.

Теперь, поскольку обычный способ установки Firebase — через CocoaPods, руководство о том, как правильно настроить Crashlytics, также адаптировано для CocoaPods.

Другими словами, скрипт запуска, который мы должны скопировать из учебника, несовместим с SPM, как вы можете видеть здесь:

${PODS_ROOT}/FirebaseCrashlytics/run

Итак, как я могу найти местоположение файла Crashlytics с помощью SPM, чтобы получить правильный сценарий запуска?

Спасибо!

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
26
0
8 647
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Ответ принят как подходящий

Оказывается, это внутри папки DerivedData:

~/Library/Developer/Xcode/DerivedData/YOURAPP-.../SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run

Для вашего удобства вы можете использовать переменную сборки для обобщения пути к папке:

${BUILD_DIR%Build/*}SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run

Наконец, ваш сценарий запуска должен выглядеть примерно так:

Кажется, теперь "${BUILD_DIR%Build/*}SourcePackages/checkouts/Crashlytics/ru‌​n"

Ian Dundas 09.04.2021 17:00

У меня сработало ${BUILD_DIR%Build/*}SourcePackages/checkouts/firebase-ios-sd‌​k/Crashlytics/run, Xcode 12.5. ОМГ СПАСИБО

DEVIGNR 17.06.2021 09:22

Теперь это "${BUILD_DIR%Build/*}SourcePackages/checkouts/firebase-ios-s‌​dk/Crashlytics/run"

Hadi 22.09.2021 20:55

И еще одна очень важная вещь, если используется нестандартное имя для файла конфигурации firebase. Этот флаг нужен для его обозначения:

-gsp ${PROJECT_DIR}/PATH-TO-CONFIG/GoogleService-Info-Dev.plist

Таким образом, окончательный сценарий должен выглядеть так

${BUILD_DIR%Build/*}SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run -gsp ${PROJECT_DIR}/PATH-TO-CONFIG/GoogleService-Info-Dev.plist

Где PATH-TO-CONFIG — это путь к файлу конфигурации firebase в проекте.

Спасибо за предложения. Я не могу сделать эту работу. Я получаю сбой и следующее сообщение об ошибке:

/Users/[path-to-my-project]/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run: Нет такого файла или каталога Сбой команды PhaseScriptExecution с ненулевым кодом выхода

Я не понимаю, почему он пытается найти сценарий crashlytics в моей папке проекта Xcode, а не в папке производных данных во время выполнения.

Я получил решение. в Xcode Preferences перейдите в: Xcode -> Preferences -> Locations -> Advanced и выберите первый вариант «Уникальный». Firebase ожидает, что папка сборки будет находиться там.

domi852 10.01.2022 07:40

Добавьте пакет, выбрав FileAdd Packages… в строке меню Xcode.

Найдите Firebase Apple SDK, используя URL репозитория:

https://github.com/firebase/firebase-ios-sdk.git

Затем установите для правила зависимости значение Up to Next Major Version и укажите 8.10.0 в качестве нижней границы.

Затем выберите Добавить пакет.

Выберите продукты Firebase, которые вы хотите установить в своем приложении.

Если вы установили FirebaseAnalytics, добавьте параметр -ObjC к Other Linker Flags на вкладке Build Settings.

Это сработало для меня, но мне пришлось изменить настройки проекта.

"${BUILD_DIR%Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"

Другие вопросы по теме