Flutter:将 dsym 符号上传到带有 flavor 的 Firebase crashlytics

问题描述 投票:0回答:2

我想从具有多种 flavors 的 Flutter 应用程序上传 dsym 符号。每个 GoogleService-Info 都位于 config/flavor_name 文件夹中。我应该将什么脚本添加到“构建阶段”以将 dsym 上传到 Firebase Crashlytics?

从另一个线程尝试脚本,但它似乎不起作用

ios flutter firebase crashlytics
2个回答
1
投票

我找到了一个剧本

environment="default"

if [[ $CONFIGURATION =~ -([^-]*)$ ]]; then
environment=${BASH_REMATCH[1]}
fi

GOOGLESERVICE_INFO_PLIST=GoogleService-Info.plist
GOOGLESERVICE_INFO_FILE=${PROJECT_DIR}/config/${environment}/${GOOGLESERVICE_INFO_PLIST}

if [ ! -f $GOOGLESERVICE_INFO_FILE ]
then
echo "No GoogleService-Info.plist found. Please ensure it's in the proper directory."
exit 1
fi

google_app_id=$(cat $GOOGLESERVICE_INFO_FILE | grep -oEi '\d:\d*?:ios:[[:alnum:]]*')

echo $google_app_id

$PODS_ROOT/FirebaseCrashlytics/upload-symbols --build-phase --validate -ai $google_app_id
$PODS_ROOT/FirebaseCrashlytics/upload-symbols --build-phase  -ai $google_app_id

0
投票

这是一个更好的脚本。它不使用 cat 和 grep,而是使用内置的 Mac 工具 PlistBuddy。另外,不要忘记第 5 步。从这里开始:https://firebase.google.com/docs/crashlytics/get-deobfuscated-reports?platform=flutter

environment="default"

# Get environment name
if [[ $CONFIGURATION =~ -([^-]*)$ ]]; then
environment=${BASH_REMATCH[1]}
fi

echo $environment

# Name and path of the resource we're reading
GOOGLESERVICE_INFO_PLIST=GoogleService-Info.plist
GOOGLESERVICE_INFO_FILE=${PROJECT_DIR}/config/${environment}/${GOOGLESERVICE_INFO_PLIST}

# Make sure GoogleService-Info.plist exists
if [ ! -f $GOOGLESERVICE_INFO_FILE ]
then
echo "No GoogleService-Info.plist found. Please ensure it's in the proper directory."
exit 1
fi

# Get app id
APP_ID=$(/usr/libexec/PlistBuddy -c "Print :GOOGLE_APP_ID" "${GOOGLESERVICE_INFO_FILE}")

echo $APP_ID

$PODS_ROOT/FirebaseCrashlytics/upload-symbols --build-phase --validate -ai ${APP_ID}
$PODS_ROOT/FirebaseCrashlytics/upload-symbols --build-phase -ai ${APP_ID}
© www.soinside.com 2019 - 2024. All rights reserved.