这是我们的Cordova SDK的文档。 SDK使用iOS和Android的原生扩展,但如果需要,将回退到纯JavaScript版本(@ sentry / browser)。
安装sentry-cordova时,Sentry Wizard将帮助您配置项目。我们还为您的Xcode项目添加了一个构建步骤,以上传我们需要用来表示iOS崩溃的调试符号。
一、配置
您必须在config.xml中将sentry.io列入白名单,如:
<access origin=”sentry.io” />
请记住,如果您使用内部部署安装,请相应地调整此域。
二、IOS处理
使用Xcode时,可以直接挂钩到构建过程以上载调试符号。如果您正在使用bitcode,则需要禁用“将调试符号上传到Sentry”构建阶段,然后分别将调试符号从iTunes Connect上传到Sentry。
三、运行脚本阶段
如果要在构建应用程序期间运行调试符号上载。您可以将其添加为Xcode中的运行脚本阶段。还要确保将项目设置中的DEBUG_INFORMATION_FORMAT设置为DWARF和dSYM文件。
export SENTRY_PROPERTIES=sentry.properties
function getProperty {
PROP_KEY=$1
PROP_VALUE=`cat $SENTRY_PROPERTIES | grep "$PROP_KEY" | cut -d'=' -f2`
echo $PROP_VALUE
}
if [ ! -f $SENTRY_PROPERTIES ]; then
echo "warning: SENTRY: sentry.properties file not found! Skipping symbol upload."
exit 0
fi
echo "# Reading property from $SENTRY_PROPERTIES"
SENTRY_CLI=$(getProperty "cli.executable")
SENTRY_COMMAND="../../$SENTRY_CLI upload-dsym"
$SENTRY_COMMAND
下一个脚本确保在将构建提交到iTunes Connect时从二进制文件中条带化所有未使用的体系结构。
如果在将构建提交到iTunes Connect时收到错误,则可能缺少此脚本。还重新添加插件帮助了一些人。
# SENTRY_FRAMEWORK_PATCH
APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"
find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
do
FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"
EXTRACTED_ARCHS=()
for ARCH in $ARCHS
do
echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"
lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
done
echo "Merging extracted architectures: ${ARCHS}"
lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
rm "${EXTRACTED_ARCHS[@]}"
echo "Replacing original executable with thinned version"
rm "$FRAMEWORK_EXECUTABLE_PATH"
mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"
done