iOS переход с Crashlytics на Firebase - PullRequest
2 голосов
/ 17 июня 2020

Я ранее перенес свой проект из Fabri c в Firebase, а теперь пытаюсь перейти с Crashlytics на FirebaseCrashlytics, но у меня возникают проблемы. Я следил за руководством по обновлению , но безрезультатно.

В моем проекте несколько схем, 4, если быть точным, и каждая из них имеет свой идентификатор пакета и, следовательно, также свой GoogleService-Info.plist. Я решил эту проблему на этапе выполнения сценария Crashlytics, и он выглядит следующим образом:

GOOGLESERVICE_INFO_PLIST=GoogleService-Info.plist

GOOGLESERVICE_INFO_APP_STORE=${PROJECT_DIR}/${TARGET_NAME}/Application/Firebase/AppStore/${GOOGLESERVICE_INFO_PLIST}
GOOGLESERVICE_INFO_PRODUCTION=${PROJECT_DIR}/${TARGET_NAME}/Application/Firebase/Production/${GOOGLESERVICE_INFO_PLIST}
GOOGLESERVICE_INFO_BETA=${PROJECT_DIR}/${TARGET_NAME}/Application/Firebase/Beta/${GOOGLESERVICE_INFO_PLIST}
GOOGLESERVICE_INFO_STAGING=${PROJECT_DIR}/${TARGET_NAME}/Application/Firebase/Staging/${GOOGLESERVICE_INFO_PLIST}

${PODS_ROOT}/FirebaseCrashlytics/run

if [ "${CONFIGURATION}" == "AppStore" ]
then
    echo "Setting up Crashlytics for App Store..."
    "${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp "${GOOGLESERVICE_INFO_APP_STORE}" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
elif [ "$CONFIGURATION" == "Production" ]
then
    echo "Setting up Crashlytics for production..."
    "${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp "${GOOGLESERVICE_INFO_PRODUCTION}" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
elif [ "$CONFIGURATION" == "Beta" ]
then
    echo "Setting up Crashlytics for beta..."
    "${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp "${GOOGLESERVICE_INFO_BETA}" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
elif [ "$CONFIGURATION" == "Staging" ]
then
    echo "Setting up Crashlytics for staging..."
    "${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp "${GOOGLESERVICE_INFO_STAGING}" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
else
    echo "Can't find matching GoogleService-Info.plist for Crashlytics configuration..."
fi

Тогда мой делегат приложения выглядит так:

@import Firebase;

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    [FIRApp configure];

    // Just put these in for testing

    [[FIRCrashlytics crashlytics] setCrashlyticsCollectionEnabled:NO];
    [[FIRCrashlytics crashlytics] checkForUnsentReportsWithCompletion:^(BOOL hasUnsentReports) {
        if (hasUnsentReports) {
            NSLog(@"-=-=-=-=- HAS UNSENT REPORTS -=-=-=-=-");
        } else {
            NSLog(@"-=-=-=-=- NO UNSENT REPORTS -=-=-=-=-");
        }
    }];

    if ([[FIRCrashlytics crashlytics] didCrashDuringPreviousExecution]) {
        NSLog(@"-=-=-=-=- APP CRASHED DURING LAST RUN -=-=-=-=-");
    }
    return YES;
}

Чтобы проверить это. Я запускаю его из Xcode, затем останавливаю, чтобы он отключил отладчик. Затем я запускаю его из симулятора и нажимаю кнопку, которая вызывает assert(NO);, и он вылетает, как и ожидалось. Затем я снова запускаю его из Xcode и всегда просто вижу строку в отладчике:

-=-=-=-=- NO UNSENT REPORTS -=-=-=-=-

Я не могу понять, что не так. Сначала я подумал, что он не отправляет сбои в Firebase, но теперь я не думаю, что он даже регистрирует, что есть сбои, - я все время вижу, что нет неотправленных отчетов.

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 24 июня 2020

Что ж, к сожалению, хотя официальные документы говорят об использовании assert(NO); для проверки вашей интеграции, я обнаружил, что использование этого метода для sh приложения на самом деле не генерировало sh отчет для меня.

Я использовал другой метод для sh приложения, и оно сработало.

Например, NSLog([FIRCrashlytics crashlytics]); работал у меня, но я ожидал чего угодно еще действительно (помимо утверждения, которое они имеют в своих документах).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...