ClashX/Pods/Fabric/run
2019-06-29 17:48:18 +08:00

74 lines
2.4 KiB
Bash
Executable File

#!/bin/sh
# run
#
# Copyright (c) 2015 Crashlytics. All rights reserved.
#
#
# This script is meant to be run as a Run Script in the "Build Phases" section
# of your Xcode project. It sends debug symbols to symbolicate stacktraces,
# sends build events to track versions, and onboard apps for Crashlytics.
#
# This script calls upload-symbols twice:
#
# 1) First it calls upload-symbols synchronously in "validation" mode. If the
# script finds issues with the build environment, it will report errors to Xcode.
# In validation mode it exits before doing any time consuming work.
#
# 2) Then it calls upload-symbols in the background to actually send the build
# event and upload symbols. It does this in the background so that it doesn't
# slow down your builds. If an error happens here, you won't see it in Xcode.
#
# You can find the output for the background execution in Console.app, by
# searching for "upload-symbols".
#
# If you want verbose output, you can pass the --debug flag to this script
#
# Figure out where we're being called from
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
# If the first argument is specified without a dash, treat it as the Fabric API
# Key and add it as an argument
if [ -z "$1" ] || [[ $1 == -* ]]; then
API_KEY_ARG=""
else
API_KEY_ARG="-a $1"; shift
fi
# If a second argument is specified without a dash, treat it as the Build Secret
# and add it as an argument
if [ -z "$1" ] || [[ $1 == -* ]]; then
BUILD_SECRET_ARG=""
else
BUILD_SECRET_ARG="-bs $1"; shift
fi
# Build up the arguments list, passing through any flags added after the
# API Key and Build Secret
ARGUMENTS="$API_KEY_ARG $BUILD_SECRET_ARG $@"
VALIDATE_ARGUMENTS="$ARGUMENTS --build-phase --validate"
UPLOAD_ARGUMENTS="$ARGUMENTS --build-phase"
# Quote the path to handle folders with special characters
COMMAND_PATH="\"$DIR/upload-symbols\" "
# Ensure params are as expected, run in sync mode to validate,
# and cause a build error if validation fails
eval $COMMAND_PATH$VALIDATE_ARGUMENTS
return_code=$?
if [[ $return_code != 0 ]]; then
exit $return_code
fi
# Verification passed, convert and upload cSYMs in the background to prevent
# build delays
#
# Note: Validation is performed again at this step before upload
#
# Note: Output can still be found in Console.app, by searching for
# "upload-symbols"
#
eval $COMMAND_PATH$UPLOAD_ARGUMENTS > /dev/null 2>&1 &