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 문서에는 이에 대한 경고 내용이 포함되어야 합니다.
시작 설명서를 자세히 따르면 몇 가지 문제가 발생할 수 있습니다.절 믿으세요.제 몫은 제 몫이었습니다.
이제 제가 여러분과 나눌 수 있는 것이 있습니다.
이전에 해당 대상에 대해 Fabric RunScript를 사용한 경우 해당 대상을 삭제하고 새 대상을 생성한 다음 GettingStarted 지침을 적용하고 다음을 교체하는 것이 가장 좋습니다.
$(INFOPLIST_PATH)
와 함께GoogleService-Info.plist
.에패구 없합니에 합니다.
Info.plist
더 이상 파일을 보관합니다. 바로이런것입다니다것.<key>Fabric</key><dict>...</dict>
만약 당신이 아직 그것을 가지고 있다면, 작별 인사를 하고 그 감정들을 놓거나 이 문제에 직면할 시간입니다.- 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
프로젝트에 충돌 분석이 이미 설정되어 있는 경우( 마이그레이션의 경우),
- Info.plist에서 패브릭 키 제거(Fabric에 대한 사전 및 키 제거 필요)
- 설명서를 따릅니다.(그냥 사용하기만 하면 됩니다.
"${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'
대체 스크립트
- "빌드 단계"로 이동
- + -> "새 스크립트 실행 단계"에서 새 스크립트 생성
- 항상 마지막인지 확인합니다.
- 이 스크립트 복사 및 붙여넣기
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
'programing' 카테고리의 다른 글
노드를 호스트하는 방법JS 프로젝트를 화력 기지로? (0) | 2023.06.15 |
---|---|
문자를 선언할 때 char와 int의 차이 (0) | 2023.06.15 |
날짜를 숫자로 변환하는 공식 (0) | 2023.06.15 |
엘마에서 이메일을 보내시겠습니까? (0) | 2023.06.15 |
벡터에 고유한 값을 R로 나열 (0) | 2023.06.10 |