mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-06 08:55:34 +00:00
change(ios): Sentry upload script for xcode-utils.sh
This commit is contained in:
parent
bba250c19e
commit
f79e9ef136
2 changed files with 48 additions and 2 deletions
|
|
@ -968,8 +968,8 @@
|
|||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/zsh;
|
||||
shellScript = "# Uploads dSYM for use with Sentry.\n# Auto-generated at https://sentry.keyman.com/keyman/keyman-ios/getting-started/cocoa-swift/\n#\n# Note that we explicitly keep the SENTRY_AUTH_TOKEN parameter out of the project configs -\n# it should be placed for inclusion by the line below:\nsource ~/.zshrc\n\nif which sentry-cli >/dev/null; then\n export SENTRY_URL=\"https://sentry.keyman.com\"\n export SENTRY_ORG=keyman\n export SENTRY_PROJECT=keyman-ios\n ERROR=$(sentry-cli upload-dif \"$DWARF_DSYM_FOLDER_PATH\" 2>&1 >/dev/null)\n if [ ! $? -eq 0 ]; then\n echo \"warning: sentry-cli - $ERROR\"\n fi\nelse\n echo \"warning: sentry-cli not installed, download from https://github.com/getsentry/sentry-cli/releases\"\nfi\n";
|
||||
shellPath = /bin/bash;
|
||||
shellScript = ". $KEYMAN_ROOT/resources/build/xcode-utils.sh\n\n# Calls resource script to perform the dSYM upload\nphaseSentryDsymUpload \"keyman-ios\"\n";
|
||||
};
|
||||
CE06AA671F161422006D91C3 /* Run Script */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
|
|
|
|||
|
|
@ -3,6 +3,13 @@
|
|||
# This script will automatically have Xcode's build environment (and variables),
|
||||
# so there's no need to do anything extra to fetch them.
|
||||
|
||||
# Some fun details for interacting with Xcode:
|
||||
# - echo "warning: foo" will generate an actual compile warning within Xcode: "foo"
|
||||
# - echo "error: bar" will likewise generate a compile error within Xcode: "bar"
|
||||
#
|
||||
# As appropriate, make sure to take advantage of this feature!
|
||||
|
||||
# Build Phase: "Set Bundle Versions"
|
||||
# Takes one parameter: "TAGGED". Defaults to false (iOS: KMEI, SWKeyboard), sets tagged info if true (iOS: Keyman)
|
||||
#
|
||||
# Thanks to https://medium.com/@bestiosdevelope/automatic-build-incrementation-technique-for-ios-release-94eb0d08785b
|
||||
|
|
@ -45,4 +52,43 @@ function phaseSetBundleVersions() {
|
|||
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $VERSION" "$DSYM_PLIST"
|
||||
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $VERSION" "$DSYM_PLIST"
|
||||
fi
|
||||
}
|
||||
|
||||
# Build Phase: Upload dSYM (debug) files to Sentry
|
||||
# Takes one parameter - the SENTRY_PROJECT target. The other parameter needs to be set as an "input file" within Xcode.
|
||||
function phaseSentryDsymUpload() {
|
||||
|
||||
if [[ $# -gt 0 ]]; then
|
||||
SENTRY_PROJECT_TARGET=$1
|
||||
else
|
||||
echo "error: SENTRY_PROJECT parameter was not provided to Sentry upload utility function."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Provides the needed definition for SENTRY_AUTH_TOKEN from TC configuration settings, since it is otherwise
|
||||
# not forwarded (privately) through Xcode.
|
||||
echo "warning: TODO: change .zshrc defintion of SENTRY_AUTH_TOKEN to something not requiring local configuration for each build agent"
|
||||
source ~/.zshrc
|
||||
|
||||
# Reference for this detection check for the input file: https://www.iosdev.recipes/xcode/input-output-files/
|
||||
if [ -z $SCRIPT_INPUT_FILE_0 ]; then
|
||||
echo "error: Run Script must have an input file set: \${DWARF_DSYM_FOLDER_PATH}/\${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/\${TARGET_NAME}"
|
||||
fi
|
||||
|
||||
if [ -z $SENTRY_AUTH_TOKEN ]; then
|
||||
echo "warning: Cannot successfully upload the dSYM to sentry if a Sentry auth token is not provided."
|
||||
fi
|
||||
|
||||
# The remaining update logic seen here was auto-generated at https://sentry.keyman.com/keyman/keyman-ios/getting-started/cocoa-swift/
|
||||
if which sentry-cli >/dev/null; then
|
||||
export SENTRY_URL="https://sentry.keyman.com"
|
||||
export SENTRY_ORG=keyman
|
||||
export SENTRY_PROJECT=$SENTRY_PROJECT_TARGET
|
||||
ERROR=$(sentry-cli upload-dif "$DWARF_DSYM_FOLDER_PATH" 2>&1 >/dev/null)
|
||||
if [ ! $? -eq 0 ]; then
|
||||
echo "warning: sentry-cli - $ERROR"
|
||||
fi
|
||||
else
|
||||
echo "warning: sentry-cli not installed; please run `brew install getsentry/tools/sentry-cli` to remedy"
|
||||
fi
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue