빌드 환경에서 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를 가져올 수 없습니다."를 실행하는 동안 빌드 단계에서 오류가 발생했습니다.
제 요구 사항을 달성하기 위해 더 나은 해결책을 제안할 수 있는 사람이 있습니까?
이 방법은 프로젝트 환경을 대상별로 구분하여 서로 다른 플리스트 파일을 추가하고 해당 파일이 속한 대상을 확인하여 대상을 컴파일할 때 해당 플리스트 파일을 가져오는 방법 중 하나입니다.
이를 수행하는 또 다른 방법은 방화벽이 있는 다중 환경이라고 합니다. 여기 몇 가지 유용한 링크가 있습니다.
다른 빌드 구성표에 다른 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
:
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}"
이것은 저에게 효과가 있었습니다.
번들 리소스 복사 후 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 추가
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 프로젝트로 가져올 수 있습니다.
여러 번들 ID를 가지고 있기 때문에 Crashlytics 스크립트 이후에 실행 중인 Firebase 스크립트(올바른 Google Service-Info.plist를 가리키는)라는 빌드 단계 스크립트가 있기 때문에 동일한 오류가 발생했습니다.해결책은 충돌 분석 스크립트 이전에 Firebase 스크립트를 실행하는 것입니다.
제 경우 파일에 다른 이름이 있었습니다. 일반 이름인 GoogleService-Info.plist로 변경했을 때 그의 이름은 GoogleService-Enterprise-Info.plis였습니다. IT는 정상적으로 작동합니다!
@react-native-firebase/충돌 분석과 관련하여 동일한 문제에 직면했습니다.
이 문제에 직면한 경우 아래 링크에 언급된 'ios 설정' 지침을 놓쳤을 수 있습니다.지침에 따라 문제를 해결하십시오.https://rnfirebase.io/ #ios-인증 정보 생성
프로젝트의 설정에서 다운로드하고 실행 중인 올바른 대상을 배치하기만 하면 됩니다.
프로젝트 이름 또는 프로젝트 경로에 공백이 있는 경우 이 오류가 표시됩니다.
이번 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
궁극적인 가이드:
- 다음항 확인서에에서 합니다.
Runner
파일이 있는 폴더GoogleService-Info.plist
그리고 그것은 당신의 프로젝트에 첨부되어 있습니다.
이 Firebase Console로 하고 "Firebase Console"을 하십시오.
GoogleService-Info.plist
파일을 XCode별로 프로젝트의 Runner 폴더에 추가합니다.XCode에 해당 파일이 없지만 폴더에 물리적으로 존재하는 경우 Runner 폴더(Runner 프로젝트) -> 파일을 Runner에 추가 -> 해당 파일을 선택
여러 가지 맛을 사용하려면 추가합니다.
ENV_SUFFIX
In Runner (대상) -> Build Settings -> User-Defined (아래쪽)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 관련 스크립트 이전이어야 합니다(맨 위로 끌 수 있음).환경에 대한 접미사가 있는 다른 GoogleService-Info.plist 파일을 추가합니다.내 경우에는 첫 번째 스크린샷의 _dev_prod 및 _tst 파일이 됩니다.
다양한 맛의 앱 즐기기
다운그레이드 해봐요, 저한테 효과가 있었어요!사용했습니다: '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
'code' 카테고리의 다른 글
반환된 레코드 집합이 닫혔습니다(VBA의 ODBC를 통해 mysql DB에 액세스됨). (0) | 2023.07.07 |
---|---|
Mongoose 기반 앱 아키텍처 (0) | 2023.07.07 |
ASP의 이름을 바꿉니다.NET_세션이드 (0) | 2023.07.07 |
-u 플래그는 it push -u origin 마스터를 의미합니까? (0) | 2023.07.07 |
조건부 교체 판다 (0) | 2023.07.07 |