programing

iOS에서 Firebase Crashlytics 설정?

batch 2023. 6. 15. 21:42
반응형

iOS에서 Firebase Crashlytics 설정?

Firebase Crashlytics를 Firebase Crash Reporting이 활성화된 iOS 앱에 통합하려고 합니다.여기에 나와 있는 설명서를 따르지만 사용자 지정 빌드 단계를 실행하면 빌드가 항상 실패합니다.

"${PODS_ROOT}/Fabric/run"

Xcode의 오류는 다음과 같습니다.

오류: 패브릭: 구성 문제

패브릭 API 키가 잘못되었습니다.패브릭 실행 스크립트 빌드 단계에는 API 키 ./Fabric.framework/실행 INSERT_YOUR_API_KEY INSERT_YOUR_BUILD_SECRET이 포함되어야 합니다.

저는 Fabric API 키를 가지고 있지 않으며, 그들의 Fabric 키는 Firebase 라이브러리에서 관리해야 한다고 생각합니다.제 프로젝트에 Info.plist가 있는데, Firebase는 완전히 작동하지만 Fabric 실행 단계를 통과할 수 없습니다.이 문제를 해결하는 방법에 대한 어떠한 도움도 매우 감사합니다!

마침내 그것을 알아냈고, 같은 문제로 당황할 수 있는 사람들을 위해 게시했습니다.

OSX Fabric.app을 통해 패브릭을 설치하려고 하거나 Fabric Crashlytics를 사용한 적이 있는 경우 Fabric API 키가 추가됩니다.Info.plist패브릭 초기화 빌드 스크립트가 읽으려고 하는 것 같습니다(아마도).

Fabric 키를 삭제한 후에는Info.plist키/파라미터 없이 스크립트가 작동합니다.

Firebase 문서에는 이에 대한 경고 내용이 포함되어야 합니다.

시작 설명서를 자세히 따르면 몇 가지 문제가 발생할 수 있습니다.절 믿으세요.제 몫은 제 몫이었습니다.

이제 제가 여러분과 나눌 수 있는 것이 있습니다.

  1. 이전에 해당 대상에 대해 Fabric RunScript를 사용한 경우 해당 대상을 삭제하고 새 대상을 생성한 다음 GettingStarted 지침을 적용하고 다음을 교체하는 것이 가장 좋습니다.$(INFOPLIST_PATH)와 함께GoogleService-Info.plist.

  2. 에패구 없합니에 합니다.Info.plist더 이상 파일을 보관합니다. 바로이런것입다니다것.<key>Fabric</key><dict>...</dict>만약 당신이 아직 그것을 가지고 있다면, 작별 인사를 하고 그 감정들을 놓거나 이 문제에 직면할 시간입니다.

  3. Xcode 콘솔에서 , 의당신 Xcode 콘이계면보인다속,[Fabric] failed to download settings Error Domain=FABNetworkError Code=-5... blah blah blah 먼저합니다.shift + cmd + k).

다음 빌드가 작동하면 앱을 강제로 충돌시키고 Firebase에서 충돌 로그를 확인하십시오.

내 스택은 다음과 같습니다: Xcode 10.2.1 | 패브릭 1.9 | 크래시리틱스 3.12

문제는 이전에 이전 패브릭을 사용했기 때문에 info.plist에서 키를 제거해야 했다는 것입니다.

저는 https://fabric.io/kits/ios/crashlytics/install 문서에 따라 Run Script와 updated Info.plist를 추가했지만 위와 같은 문제가 발생했습니다.

실수로 '새 스크립트 실행 단계'를 두 번 추가한 것 같습니다.불필요한 '스크립트 실행'을 제거한 후 프로젝트가 성공적으로 컴파일되었습니다.

Xcode 10.1 패브릭 1.7.5 충돌 분석 3.10.4

문서화

  • 프로젝트에 충돌 분석이 이미 설정되어 있는 경우( 마이그레이션의 경우),

    1. Info.plist에서 패브릭 키 제거(Fabric에 대한 사전 및 키 제거 필요)
    2. 설명서를 따릅니다.(그냥 사용하기만 하면 됩니다."${PODS_ROOT}/Fabric/run"대신에"${PODS_ROOT}/Fabric/run" key1 key2빌드 시 스크립트 실행 단계)
  • 프로젝트에 충돌 분석 기능이 아직 설정되어 있지 않은 경우(화재 기반 충돌 분석 기능과의 새로운 통합 시작) 설명서를 따르십시오.

Crashlytics를 사용 중인 경우 다음으로 이동해야 할 수 있습니다.Build Phases -> Crashlytics configuration그리고 셸/빈/sh 섹션에 'set -e'와 같이 추가합니다.

${PODS_ROOT}]인 경우 "info: Exec Fabric Run from Pods" "${PODS_ROOT}/Fabric/run"을 에코합니다. 그렇지 않으면 "info: Exec Fabric Run from framework" "${PROJ"를 에코합니다.ECT_DIR}/Fabric.framework/실행" 여기서 fi'

대체 스크립트

  1. "빌드 단계"로 이동
  2. + -> "새 스크립트 실행 단계"에서 새 스크립트 생성
  3. 항상 마지막인지 확인합니다.
  4. 이 스크립트 복사 및 붙여넣기
set -e

echo "info: Exec Upload dSYM"
#Path for google service .plist 
GOOGLE_SERVICE_INFO_PLIST="${BUILT_PRODUCTS_DIR}/${FULL_PRODUCT_NAME}/GoogleService-Info.plist"
#Path for DSYM directory
DSYM_PATH="$DWARF_DSYM_FOLDER_PATH/dddd/$DWARF_DSYM_FILE_NAME"
#Firebase command script
CMD=""
if [[ ${PODS_ROOT} ]]; then
  echo "info: Exec FirebaseCrashlytics Run from Pods"
  CMD="$PODS_ROOT/FirebaseCrashlytics/upload-symbols"
else
  echo "info: Exec FirebaseCrashlytics Run from framework"
  CMD="$PROJECT_DIR/FirebaseCrashlytics.framework/upload-symbols"
fi

echo "info: Checking if .plist exists"
if [ -f "$GOOGLE_SERVICE_INFO_PLIST" ]; then
    echo "info: $GOOGLE_SERVICE_INFO_PLIST exists."
else 
    echo "ERROR: $GOOGLE_SERVICE_INFO_PLIST does not exist."
    exit 1
fi

echo "info: Checking if .dSYM"
if [ -d "$DSYM_PATH" ]; then
    echo "info: $DSYM_PATH exists."
else 
    echo "ERROR: $DSYM_PATH does not exist."
    echo "info: try fallback"
    DSYM_PATH=` find "${DWARF_DSYM_FOLDER_PATH}" -name "*.dSYM" | xargs `
    if [ -d "$DSYM_PATH" ]; then
        echo "info: $DSYM_PATH exists."
    else 
        echo "ERROR: $DSYM_PATH does not exist."
        exit 1
    fi
fi
echo "info: Check if upload-symbols script exists"
if [ -f "$CMD" ]; then
    echo "$CMD exists."
else 
    echo "ERROR: $CMD does not exist."
    exit 1
fi

echo "info: Starting command upload-symbols"
"${CMD}" -gsp "$GOOGLE_SERVICE_INFO_PLIST" -p ios "$DSYM_PATH" > /dev/null 2>&1 &
echo "info: Symbol uploading will proceed in the background."
echo "info: remove '> /dev/null 2>&1 &' to test in the main thread and see if there are any errors, or open console and filter with 'upload-symbols'"

언급URL : https://stackoverflow.com/questions/47867184/firebase-crashlytics-setup-on-ios

반응형