code

빌드 환경에서 Google 서비스 파일의 Google_APP_ID를 가져올 수 없습니다.

starcafe 2023. 7. 7. 19:17
반응형

빌드 환경에서 Google 서비스 파일의 Google_APP_ID를 가져올 수 없습니다.

파이어베이스 설정을 위해 2개의 구성 1을 사용하고 있습니다.Google 서비스-정보-테스트.플리스트, 2.UAT 및 운영용 Google Service-Info-prdn.plist.Firebase를 사용하여 충돌 분석을 설치하는 경우 Firebase 설명서 https://firebase.google.com/docs/crashlytics/get-started?authuser=1#ios 를 따릅니다.하지만 실행하려고 하면 스크립트를 실행하는 동안 빌드 단계에서 오류가 발생합니다.

나는 구성 파일 이름을 변경하지 않고 시도했고 작동했습니다.

패브릭 실행 스크립트 "빌드 환경에서 Google 서비스 파일의 Google_APP_ID를 가져올 수 없습니다."를 실행하는 동안 빌드 단계에서 오류가 발생했습니다.

제 요구 사항을 달성하기 위해 더 나은 해결책을 제안할 수 있는 사람이 있습니까?

이 방법은 프로젝트 환경을 대상별로 구분하여 서로 다른 플리스트 파일을 추가하고 해당 파일이 속한 대상을 확인하여 대상을 컴파일할 때 해당 플리스트 파일을 가져오는 방법 중 하나입니다.

Sample Image

이를 수행하는 또 다른 방법은 방화벽이 있는 다중 환경이라고 합니다. 여기 몇 가지 유용한 링크가 있습니다.

다른 빌드 구성표에 다른 Google Service-Info.plist 사용

https://medium.com/rocket-fuel/using-multiple-firebase-environments-in-ios-12b204cfa6c0

이것은 저에게 효과가 있었습니다.

Firebase와할 때 에 대해 가 발생할 수 .Could not get GOOGLE_APP_ID in Google Services file from build environment다음 방법으로 해결할 수 있습니다.

  • Build Settings 를 파일 이름에 합니다.User Defined:

Add file name for each scheme in User Defined

  • Build Phases더하기 버튼을 누릅니다.New Run Script Phase이 코드를 텍스트 필드에 입력합니다.%이름을 파일에 로 변경하는 것을 . %YOUR_CUSTOM_PATH_TO_FOLDER%는 Plist 파일 이름입니다
GOOGLE_SERVICE_INFO_PLIST_FROM="${PROJECT_DIR}/%YOUR_CUSTOM_PATH_TO_FOLDER%/${FIREBASE_CONFIG_FILE}.plist"
BUILD_APP_DIR="${BUILT_PRODUCTS_DIR}/${FULL_PRODUCT_NAME}"
GOOGLE_SERVICE_INFO_PLIST_TO="${BUILD_APP_DIR}/GoogleService-Info.plist"
cp "${GOOGLE_SERVICE_INFO_PLIST_FROM}" "${GOOGLE_SERVICE_INFO_PLIST_TO}" 

Add build phase

이것은 저에게 효과가 있었습니다.

번들 리소스 복사 후 Xcode Crashlytics 빌드 단계를 추가해야 합니다.

제 "빌드 페이즈"에서 이 작업을 수행했습니다.

"${PODS_ROOT}/FirebaseCrashlytics/run"
"${PODS_ROOT}/FirebaseCrashlytics/upload-symbols" -gsp "${PROJECT_DIR}/MyApp/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"

이지만, 는 두 파일을 .GoogleService-Info-Prod.plist그리고.GoogleService-Info-Dev.plist.

제 "빌드 페이즈"에서 이 작업을 수행했습니다.

if [ "${CONFIGURATION}" = "Release" ]; then
${PODS_ROOT}/FirebaseCrashlytics/run -gsp ${PROJECT_DIR}/RushCard/FirebaseConfig/GoogleService-Info-Prod.plist
else
${PODS_ROOT}/FirebaseCrashlytics/run -gsp ${PROJECT_DIR}/RushCard/FirebaseConfig/GoogleService-Info-Dev.plist
fi

내 경우 컴파일 소스 에 새 실행 스크립트 구문을 생성했기 때문에 항상 다음이 표시됩니다.

빌드 환경에서 Google 서비스 파일의 Google_APP_ID를 가져올 수 없습니다.

목록 끝에 있는 Crashlytic의 실행 스크립트를 이동했더니 버그가 사라졌습니다.다음 스크린샷을 확인하십시오.

그리고 그것에 대한 기사는 여기에 있습니다.

다른 방법은 하나의 리스트가 원래 이름을 유지하는지 확인하는 것입니다.GoogleService-Info.plist

대상이 다양하기 때문에 CI를 업데이트하는 작업이 더 많아졌습니다.

이는 적어도 Xcode 11에 대해 유효하며, 다른 버전에서는 테스트되지 않았습니다.

저는 여러 화이트 레이블 앱에 대해 여러 구성을 사용합니다. 변수 습니사용다추가자를을 했습니다.FIREBASE_SUFFIX스크립트를 다음과 같이 변경했습니다.

${PODS_ROOT}/FirebaseCrashlytics/run -gsp ${PROJECT_DIR}/Firebase/GoogleService-Info-${FIREBASE_SUFFIX}.plist

참고: 저는 카르타고를 소방 기지로 사용합니다: https://github.com/firebase/firebase-ios-sdk/blob/master/Carthage.md .동일한 설정인 경우 다음과 같은 방법을 대신 사용해야 합니다(스크립트 파일을 저장할 경로 바꾸기).

${PROJECT_DIR}/scripts/run -gsp ${PROJECT_DIR}/Firebase/GoogleService-Info-${FIREBASE_SUFFIX}.plist

베타 버전인 새 Firebase/Crashlytics를 사용하다가 dSYMS를 수동으로 업로드하려고 할 때 "Google App ID 또는 Google Services 파일이 제공되지 않음" 오류가 표시됨

다음은 명령입니다.

/path/to/pods/directory/FirebaseCrashlytics/upload-symbols
-gsp/path/to/GoogleService-Info.plist -p ios /path/to/dSYMs

그렇다면 "-gsp"와 Google 경로 사이에 공간이 있어야 한다고 생각합니다.그 다음에 플리스터. 효과가 있었습니다.

저의 해결책은 업로드-기호 스크립트 호출을 제거하는 것이었습니다.

Crashlytics 가이드 중 하나는 다음을 추가해야 한다고 언급합니다.

${PODS_ROOT}/FirebaseCrashlytics/run
/path/to/pods/directory/FirebaseCrashlytics/upload-symbols  <- Not needed

제가 잘못 해석했습니다...실행 스크립트는 이미 업로드-다운로드를 호출하므로 두 번째 호출을 추가할 필요가 없습니다.

Xcode 파일 탐색기(즉, 왼쪽)에 "GoogleService-Info.plist"가 표시되는지 확인합니다.그렇지 않은 경우 Xcode 패널에서 "Google Service-Info.plist"를 드래그 앤 드롭해야 합니다.

이 파일 참조가 프로젝트 정보에 없기 때문에 프로젝트 위치에 파일을 복사하여 붙여넣은 것이 문제입니다.

위의 모든 답변은 이 문제에 대한 가능한 해결책을 목적으로 합니다. 저의 경우 Google 서비스입니다.제 경우에 작동한 파일을 '번들 리소스 복사'에 추가하여 plist 파일이 누락되었습니다.

파일을 확인하려면 다음으로 이동합니다.

프로젝트 디렉토리 >> 빌드 단계 >> 번들 리소스 복사

누락된 것을 발견하면 여기에 추가합니다.

위에서 제공한 솔루션이 작동하지 않는 경우 이 이미지에 표시된 빌드 단계로 이동하여 해결했습니다.더하기를 클릭하고 Google plist 추가

Xcode screenshot solution

GoogleService-Info.plist가 어디에 있는지 찾아서 Float의 ios 폴더에 복사하고 이 스크립트로 실행하여 이 문제를 해결할 수 있었습니다.

"$PODS_ROOT/FirebaseCrashlytics/upload-symbols" --flutter-project "$PROJECT_DIR/firebase_app_id_file.json" -gsp "$PROJECT_DIR/GoogleService-Info.plist" -p ios "$DWARF_DSYM_FOLDER_PATH/$DWARF_DSYM_FILE_NAME"

업데이트: 더 나은 솔루션을 찾았습니다.

  • 모든 Firebase 패키지를 최신 버전으로 업그레이드하기만 하면 됩니다.
  • 충돌 분석 빌드 스크립트 제거
  • 펄럭펄럭 깨끗하게 뛰어라, 펄럭펄럭 펍
  • 포드 설치(ios 폴더)

다운로드하지 않아서 이 문제가 발생했습니다.GoogleService-Info.plist파일을 저장할 수 있습니다.

Firebase에 프로젝트가 있지만 Xcode에 이 파일이 없으면 처음부터 다시 설정할 필요가 없으므로 걱정하지 마십시오.다음으로 이동:
Project Settings > General > Scroll down and in the "Your Apps" panel파일을 보고 다운로드하여 Xcode 프로젝트로 가져올 수 있습니다.

1

여러 번들 ID를 가지고 있기 때문에 Crashlytics 스크립트 이후에 실행 중인 Firebase 스크립트(올바른 Google Service-Info.plist를 가리키는)라는 빌드 단계 스크립트가 있기 때문에 동일한 오류가 발생했습니다.해결책은 충돌 분석 스크립트 이전에 Firebase 스크립트실행하는 것입니다.

제 경우 파일에 다른 이름이 있었습니다. 일반 이름인 GoogleService-Info.plist로 변경했을 때 그의 이름은 GoogleService-Enterprise-Info.plis였습니다. IT는 정상적으로 작동합니다!

@react-native-firebase/충돌 분석과 관련하여 동일한 문제에 직면했습니다.

이 문제에 직면한 경우 아래 링크에 언급된 'ios 설정' 지침을 놓쳤을 수 있습니다.지침에 따라 문제를 해결하십시오.https://rnfirebase.io/ #ios-인증 정보 생성

프로젝트의 설정에서 다운로드하고 실행 중인 올바른 대상을 배치하기만 하면 됩니다.

plist file

프로젝트 이름 또는 프로젝트 경로에 공백이 있는 경우 이 오류가 표시됩니다.

이번 GitHub 호에서 자세히 알아보기

다른 답변에 추가로..

저는 정확히 같은 오류 메시지와 함께 그 문제에 직면했고, 저의 경우 응용 프로그램을 위해 잘못된 번들 ID로 생성되었다는 것을 제외하고는 GoogleService-Info.plist 파일에 문제가 없었습니다(초기 Firebase 설정이 발생한 것보다 훨씬 늦게 XCode에서 변경되었습니다).그래서 올바른 번들 ID(편집할 수 없음)로 Firebase Console에 새 앱을 만들고 새 Google Service-Info.plist를 다운로드해야 했습니다.

여러 다른 환경을 처리하기 위해 널리 사용되는 빌드 스크립트 중 하나를 사용하는 경우에는 다른 빌드 스크립트를 사용하는 것이 유용할 것입니다.GoogleService-Info.plist대상 플랫폼 기반 대상:

// iOS
PLIST_DESTINATION=${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app

// watchOS
PLIST_DESTINATION=${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.appex

// macOS
PLIST_DESTINATION=${BUILT_PRODUCTS_DIR}/${CONTENTS_FOLDER_PATH}/Resources

궁극적인 가이드:

  1. 다음항 확인서에에서 합니다.Runner파일이 있는 폴더GoogleService-Info.plist그리고 그것은 당신의 프로젝트에 첨부되어 있습니다.

  1. 이 Firebase Console로 하고 "Firebase Console"을 하십시오.GoogleService-Info.plist파일을 XCode별로 프로젝트의 Runner 폴더에 추가합니다.

  2. XCode에 해당 파일이 없지만 폴더에 물리적으로 존재하는 경우 Runner 폴더(Runner 프로젝트) -> 파일을 Runner에 추가 -> 해당 파일을 선택

  3. 여러 가지 맛을 사용하려면 추가합니다.ENV_SUFFIXIn Runner (대상) -> Build Settings -> User-Defined (아래쪽)

  4. Phase로 -> -> Script -> Runner로 지정 -> Press Plus -> New Run Script Phase ->Copy GoogleService-Info.plist그리고 이 줄을 추가합니다.cp Runner/GoogleService-Info_${ENV_SUFFIX}.plist Runner/GoogleService-Info.plist중요한!이 스크립트는 충돌 분석 초기화 단계 또는 다른 Firebase 관련 스크립트 이전이어야 합니다(맨 위로 끌 수 있음).

  5. 환경에 대한 접미사가 있는 다른 GoogleService-Info.plist 파일을 추가합니다.내 경우에는 첫 번째 스크린샷의 _dev_prod 및 _tst 파일이 됩니다.

  6. 다양한 맛의 앱 즐기기

다운그레이드 해봐요, 저한테 효과가 있었어요!사용했습니다: 'Fabric', '1.9.0', 'Crashlytics', '3.12.0'

언급URL : https://stackoverflow.com/questions/57006663/could-not-get-google-app-id-in-google-services-file-from-build-environment

반응형