iOS Firebase 崩溃报告 - 错误 运行 构建脚本
iOS Firebase Crash Reporting - Error running build script
运行使用脚本上传符号文件时出现以下错误(每次我尝试构建我的项目时):
upload-sym-util.bash:351: error: symbolFileUploadLocation: The API Key and the authentication
credential are from different projects.
这是我的构建脚本:
if [ "$CONFIGURATION" == "Debug" ]; then
GOOGLE_APP_ID=<app-id>
"${PODS_ROOT}"/FirebaseCrash/upload-sym "${SRCROOT}"/<app>/Firebase/CrashReportingKey-Dev.json
else
GOOGLE_APP_ID=<app-id>
"${PODS_ROOT}"/FirebaseCrash/upload-sym "${SRCROOT}"/<app>/Firebase/CrashReportingKey.json
fi
我拥有的东西 done/checked:
GOOGLE_APP_ID
和 CrashReportingKey*.json
与同一个项目关联。
- 我的
GoogleService-Info*.plist
文件有 API_KEY
字段。
- 选中 "Run script only when installing" 框,这允许我 运行 应用程序,但实际上 运行 开发环境中的脚本。所以崩溃被发送到 Firebase,但它们没有被符号化。
我愿意接受任何想法。谢谢!
问题出在 GoogleService-Info.plist
文件的名称上。
在我的项目中,我有以下文件:
GoogleService-Info.plist
GoogleService-Info-Dev.plist
CrashReportingKey.json
CrashReportingKey-Dev.json
Firebase 崩溃报告上传脚本始终准确查找名为 GoogleService-Info.plist
的文件。因为它找到了一个,并且我告诉脚本使用 CrashReportingKey-Dev.json
,它抛出了项目不匹配错误。
根据我的研究,无法告诉 Firebase 崩溃报告上传脚本您想使用哪个 *Info.plist
文件,因此我决定只为发布版本上传符号文件,这很好。
我的 运行 脚本现在如下所示,并且可以正常工作。
if [ "$CONFIGURATION" == "Release" ]; then
GOOGLE_APP_ID=<app-id>
"${PODS_ROOT}"/FirebaseCrash/upload-sym "${SRCROOT}"/<app>/Firebase/CrashReportingKey.json
fi
然后我从我的项目中删除了 CrashReportingKey-Dev.json
。
您说得对,无法覆盖 GoogleService-Info.plist。然而,仍然有一种方法可以覆盖上传脚本使用的来自该文件的信息片段。
- 打开.json.
对应的GoogleService-Info.plist
- 搜索 GOOGLE_APP_ID 和 API_KEY。
像这样调整构建脚本:
export FIREBASE_APP_ID=<GOOGLE_APP_ID>
export FIREBASE_API_KEY=<API_KEY>
"${PODS_ROOT}"/FirebaseCrash/upload-sym "ServiceAccount.json"
在您的情况下,您的最终脚本应如下所示:
if [ "$CONFIGURATION" == "Debug" ]; then
export FIREBASE_APP_ID=<app-id>
export FIREBASE_API_KEY=<API_KEY for dev>
"${PODS_ROOT}"/FirebaseCrash/upload-sym "${SRCROOT}"/<app>/Firebase/CrashReportingKey-Dev.json
else
export FIREBASE_APP_ID=<app-id>
export FIREBASE_API_KEY=<API_KEY for release>
"${PODS_ROOT}"/FirebaseCrash/upload-sym "${SRCROOT}"/<app>/Firebase/CrashReportingKey.json
fi
我解决了:
在终端中:
rm $HOME/Library/Preferences/com.google.SymbolUpload*
Xcode :
产品 -> 清洁
就我而言,我必须通过 运行 此命令重置我的 OAuth 凭据:
rm $HOME/Library/Preferences/com.google.SymbolUpload*
如此处所述:https://firebase.google.com/docs/crash/ios
现在对我来说很好用!
我今天遇到这个错误。
我找到了这个配置,只需将这个 GOOGLE_APP_ID 替换为你的 GoogleService 中的值-Info.plist
在此处查看图片,抱歉,我没有 post 图片的权限
Replace GOOGLE_APP_ID
运行使用脚本上传符号文件时出现以下错误(每次我尝试构建我的项目时):
upload-sym-util.bash:351: error: symbolFileUploadLocation: The API Key and the authentication credential are from different projects.
这是我的构建脚本:
if [ "$CONFIGURATION" == "Debug" ]; then
GOOGLE_APP_ID=<app-id>
"${PODS_ROOT}"/FirebaseCrash/upload-sym "${SRCROOT}"/<app>/Firebase/CrashReportingKey-Dev.json
else
GOOGLE_APP_ID=<app-id>
"${PODS_ROOT}"/FirebaseCrash/upload-sym "${SRCROOT}"/<app>/Firebase/CrashReportingKey.json
fi
我拥有的东西 done/checked:
GOOGLE_APP_ID
和CrashReportingKey*.json
与同一个项目关联。- 我的
GoogleService-Info*.plist
文件有API_KEY
字段。 - 选中 "Run script only when installing" 框,这允许我 运行 应用程序,但实际上 运行 开发环境中的脚本。所以崩溃被发送到 Firebase,但它们没有被符号化。
我愿意接受任何想法。谢谢!
问题出在 GoogleService-Info.plist
文件的名称上。
在我的项目中,我有以下文件:
GoogleService-Info.plist
GoogleService-Info-Dev.plist
CrashReportingKey.json
CrashReportingKey-Dev.json
Firebase 崩溃报告上传脚本始终准确查找名为 GoogleService-Info.plist
的文件。因为它找到了一个,并且我告诉脚本使用 CrashReportingKey-Dev.json
,它抛出了项目不匹配错误。
根据我的研究,无法告诉 Firebase 崩溃报告上传脚本您想使用哪个 *Info.plist
文件,因此我决定只为发布版本上传符号文件,这很好。
我的 运行 脚本现在如下所示,并且可以正常工作。
if [ "$CONFIGURATION" == "Release" ]; then
GOOGLE_APP_ID=<app-id>
"${PODS_ROOT}"/FirebaseCrash/upload-sym "${SRCROOT}"/<app>/Firebase/CrashReportingKey.json
fi
然后我从我的项目中删除了 CrashReportingKey-Dev.json
。
您说得对,无法覆盖 GoogleService-Info.plist。然而,仍然有一种方法可以覆盖上传脚本使用的来自该文件的信息片段。
- 打开.json. 对应的GoogleService-Info.plist
- 搜索 GOOGLE_APP_ID 和 API_KEY。
像这样调整构建脚本:
export FIREBASE_APP_ID=<GOOGLE_APP_ID> export FIREBASE_API_KEY=<API_KEY> "${PODS_ROOT}"/FirebaseCrash/upload-sym "ServiceAccount.json"
在您的情况下,您的最终脚本应如下所示:
if [ "$CONFIGURATION" == "Debug" ]; then
export FIREBASE_APP_ID=<app-id>
export FIREBASE_API_KEY=<API_KEY for dev>
"${PODS_ROOT}"/FirebaseCrash/upload-sym "${SRCROOT}"/<app>/Firebase/CrashReportingKey-Dev.json
else
export FIREBASE_APP_ID=<app-id>
export FIREBASE_API_KEY=<API_KEY for release>
"${PODS_ROOT}"/FirebaseCrash/upload-sym "${SRCROOT}"/<app>/Firebase/CrashReportingKey.json
fi
我解决了:
在终端中: rm $HOME/Library/Preferences/com.google.SymbolUpload*
Xcode : 产品 -> 清洁
就我而言,我必须通过 运行 此命令重置我的 OAuth 凭据: rm $HOME/Library/Preferences/com.google.SymbolUpload*
如此处所述:https://firebase.google.com/docs/crash/ios
现在对我来说很好用!
我今天遇到这个错误。 我找到了这个配置,只需将这个 GOOGLE_APP_ID 替换为你的 GoogleService 中的值-Info.plist
在此处查看图片,抱歉,我没有 post 图片的权限 Replace GOOGLE_APP_ID