Java编程ture找不到符号,[未解决]Bugly中上传符号表dSYM文件
#!/bin/sh
# Copyright 2014-2016 Bugly, Tencent. All rights reserved.
#
# V1.2.1
#
# 2016.03.02
#
#
################################################################################
# # 注意: 请配置下面的信息
################################################################################
# BUGLY_APP_ID=”YOUR_APP_ID”
# BUGLY_APP_KEY=”YOUR_APP_KEY”
# BUNDLE_IDENTIFIER=”YOUR_BUNDLE_ID”
################################################################################
# # 自定义配置
################################################################################
# # Debug模式编译是否上传,1=上传 0=不上传,默认不上传
# UPLOAD_DEBUG_SYMBOLS=0
#
# # 模拟器编译是否上传,1=上传 0=不上传,默认不上传
# UPLOAD_SIMULATOR_SYMBOLS=0
#
# #只有Archive操作时上传, 1=支持Archive上传 0=所有Release模式编译都上传
# UPLOAD_ARCHIVE_ONLY=0
#
# # 脚本默认配置的版本格式为CFBundleShortVersionString(CFBundleVersion), 如果你修改默认的版本格式, 请设置此变量, 如果不想修改, 请忽略此设置
# CUSTOMIZED_APP_VERSION=””
#
#
#
# This script will extract symbols from the .dSYM and generate .symbol file(Bugly supported) and upload to server.
# You could visit http://bugly.qq.com to get more details about Bugly.(Optional: buylyweb.et.wsd.com)
#
# Usage:
# * The instructions assume you have copyed this script into your project int Xcode.
# * Copy the “buglySymbolIOS.jar” file into the “~/bin” folder.
# * Open the project editor, select your build target.
# * Click “Build Phases” at the top of the project editor.
# * Click “+” button in the top left corner and select “New Run Script Phase”.
# * Click “Run Script”.
# * Paste the following script into the dark text box. You will have to uncomment the lines (remove the #) of course.
#
# — SCRIPT BEGINS ON NEXT LINE, COPY AND EDIT FROM THERE —
#
#
#
# — END OF SCRIPT —
################################################################################
# 注意: 如果你不知道此脚本的执行流程和用法,请不要随便修改!
################################################################################
# 退出执行并打印提示信息
exitWithMessage() {
echo “——————————–“
echo -e “${1}”
echo “——————————–“
echo “No upload and exit.”
echo “—————————————————————-“
exit ${2}
}
echo “—————————————————————-“
echo “Copyright 2014-2015 Bugly @Tencent. All rights reserved.”
echo “This script will extract symbols from the .dSYM file and generate .symbol file(Bugly supported) and upload to server.”
echo “You could visit http://bugly.qq.com to get more details about Bugly.”
echo “—————————————————————-“
echo “Uploading dSYM to Bugly.”
echo “”
# Bugly服务域名
DSYM_UPLOAD_DOMAIN=”bugly.qq.com”
# 读取Info.plist文件中的版本信息
echo “Info.Plist : ${INFOPLIST_FILE}”
BUNDLE_VERSION=$(/usr/libexec/PlistBuddy -c ‘Print CFBundleVersion’ “${INFOPLIST_FILE}”)
BUNDLE_SHORT_VERSION=$(/usr/libexec/PlistBuddy -c ‘Print CFBundleShortVersionString’ “${INFOPLIST_FILE}”)
# 组装Bugly默认识别的版本信息(格式为CFBundleShortVersionString(CFBundleVersion), 例如: 1.0(1))
if [ ! “${CUSTOMIZED_APP_VERSION}” ]; then
BUGLY_APP_VERSION=”${BUNDLE_SHORT_VERSION}(${BUNDLE_VERSION})”
else
BUGLY_APP_VERSION=”${CUSTOMIZED_APP_VERSION}”
fi
# Bugly符号提取工具路径, 请确保buglySymboliOS.jar的路径是正确的
BUGLY_SYMBOL_JAR_PATH=”${SRCROOT}/dsymtool/buglySymboliOS.jar”
if [ ! -f “${BUGLY_SYMBOL_JAR_PATH}” ]; then
BUGLY_SYMBOL_JAR_PATH=”$HOME/bin/buglySymboliOS.jar”
fi
echo “——————————–“
echo “Step 1: Prepare application information.”
echo “——————————–“
echo “Product Name: ${PRODUCT_NAME}”
echo “Bundle Identifier: ${BUNDLE_IDENTIFIER}”
echo “Version: ${BUNDLE_SHORT_VERSION}”
echo “Build: ${BUNDLE_VERSION}”
echo “Bugly App ID: ${BUGLY_APP_ID}”
echo “Bugly App key: ${BUGLY_APP_KEY}”
echo “Bugly App Version: ${BUGLY_APP_VERSION}”
echo “——————————–“
echo “Step 2: Check the arguments …”
##检查模拟器编译是否允许上传符号
if [ “$EFFECTIVE_PLATFORM_NAME” == “-iphonesimulator” ]; then
if [ $UPLOAD_SIMULATOR_SYMBOLS -eq 0 ]; then
exitWithMessage “Warning: Build for simulator and skipping to upload. \nYou can modify ‘UPLOAD_SIMULATOR_SYMBOLS’ to 1 in the script.” 0
fi
fi
##检查是否是Release模式编译
if [ “${CONFIGURATION=}” == “Debug” ]; then
if [ $UPLOAD_DEBUG_SYMBOLS -eq 0 ]; then
exitWithMessage “Warning: Build for debug mode and skipping to upload. \nYou can modify ‘UPLOAD_DEBUG_SYMBOLS’ to 1 in the script.” 0
fi
fi
##检查是否Archive操作
if [ $UPLOAD_ARCHIVE_ONLY -eq 1 ]; then
if [[ “$TARGET_BUILD_DIR” == *”/Archive”* ]]; then
echo “Archive the package”
else
exitWithMessage “Warning: Build for NOT Archive mode and skipping to upload. \nYou can modify ‘UPLOAD_ARCHIVE_ONLY’ to 0 in the script.” 0
fi
fi
# 检查必须参数是否设置
if [ ! “${BUGLY_APP_ID}” ]; then
exitWithMessage “Error: Bugly App ID not defined. Please set ‘BUGLY_APP_ID’ ” 0
fi
if [[ “${BUGLY_APP_ID}” == *”App ID”* ]]; then
exitWithMessage “Error: Bugly App ID not defined.” 0
fi
if [ ! “${BUGLY_APP_KEY}” ]; then
exitWithMessage “Error: Bugly APP Key not defined.” 0
fi
if [ ! “${BUNDLE_IDENTIFIER}” ]; then
exitWithMessage “Error: Bundle Identifier not defined.” 0
fi
function uploadDSYM {
DSYM_SRC=”$1″
echo “.dSYM file: ${DSYM_SRC}”
if [ ! -d “$DSYM_SRC” ]; then
exitWithMessage “dSYM source not found: ${DSYM_SRC}” 0
fi
DSYM_FILE_NAME=${DSYM_SRC##*/}
DSYM_SYMBOL_OUT_ZIP_NAME=”${DSYM_FILE_NAME}.bSymbol.zip”
# 替换空格
DSYM_SYMBOL_OUT_ZIP_NAME=”${DSYM_SYMBOL_OUT_ZIP_NAME// /_}”
# 声明符号表临时目录和备份目录
DSYM_ZIP_OUT_DIR=${BUILD_DIR}/BuglySymbolsTemp
DSYM_SYMBOL_BACKUP_DIR=${BUILD_DIR}/BuglySymbolsBackup
if [ ! -e “${DSYM_ZIP_OUT_DIR}” ]; then
mkdir ${DSYM_ZIP_OUT_DIR}
fi
if [ ! -e “${DSYM_SYMBOL_BACKUP_DIR}” ]; then
mkdir ${DSYM_SYMBOL_BACKUP_DIR}
fi
# 备份并清理
find ${DSYM_ZIP_OUT_DIR} -name “*.bSymbol.zip” -print0 | xargs -0 -I {} mv {} ${DSYM_SYMBOL_BACKUP_DIR}
/bin/rm -rf “${DSYM_ZIP_OUT_DIR}/*.bSymbol.zip”
DSYM_ZIP_FPATH=”${DSYM_ZIP_OUT_DIR}/${DSYM_SYMBOL_OUT_ZIP_NAME}”
# 提取符号信息
echo “——————————–“
echo “Step 3: Extract symbol info from .dSYM file. to ${DSYM_ZIP_FPATH}”
if [ ! -f “$BUGLY_SYMBOL_JAR_PATH” ]; then
exitWithMessage “Error: Jar file ‘${BUGLY_SYMBOL_JAR_PATH}’ was not found. \nPlease copy the jar file into ~/bin folder.” 1
fi
echo “——————————–“
(/usr/bin/java -jar “${BUGLY_SYMBOL_JAR_PATH}” -i “${DSYM_SRC}” -o “${DSYM_ZIP_FPATH}” ) || exitWithMessage “Error: Failed to extract symbols.” 1
echo “——————————–“
if [ ! -e “${DSYM_ZIP_FPATH}” ]; then
DSYM_SYMBOL_OUT_ZIP_NAME=$(ls ${DSYM_ZIP_OUT_DIR} | grep “.bSymbol.zip”)
DSYM_ZIP_FPATH=”${DSYM_ZIP_OUT_DIR}/${DSYM_SYMBOL_OUT_ZIP_NAME}”
DSYM_SYMBOL_OUT_ZIP_NAME=${DSYM_SYMBOL_OUT_ZIP_NAME//&/_}
fi
if [ ! -e “${DSYM_ZIP_FPATH}” ] ; then
exitWithMessage “no symbol file zip archive generated: ${DSYM_ZIP_FPATH}” 0
fi
echo “Step 4: Upload the symbols of dSYM.”
echo “——————————–“
echo “zip : ${DSYM_SYMBOL_OUT_ZIP_NAME}”
echo “dir : ${DSYM_ZIP_FPATH}”
echo “dSYM upload domain: ${DSYM_UPLOAD_DOMAIN}”
DSYM_UPLOAD_URL=”http://${DSYM_UPLOAD_DOMAIN}/upload/dsym?app=${BUGLY_APP_ID}&pid=2&ver=${BUGLY_APP_VERSION}&n=${DSYM_SYMBOL_OUT_ZIP_NAME}&key=${BUGLY_APP_KEY}&bid=${BUNDLE_IDENTIFIER}”
echo “dSYM upload url: ${DSYM_UPLOAD_URL}”
# Upload dSYM to Bugly
echo “curl –header “Content-Type:application/zip” –data-binary “@${DSYM_ZIP_FPATH}” “${DSYM_UPLOAD_URL}” –verbose”
echo “——————————–“
STATUS=$(/usr/bin/curl –header “Content-Type:application/zip” –data-binary “@${DSYM_ZIP_FPATH}” “${DSYM_UPLOAD_URL}” –verbose)
echo “——————————–“
UPLOAD_RESULT=”FAILTURE”
echo “Bugly server response: ${STATUS}”
if [ ! “${STATUS}” ]; then
echo “Error: Failed to upload the zip archive file.”
elif [[ “${STATUS}” == *”:true”* ]]; then
echo “Success to upload the dSYM for the app [${BUNDLE_IDENTIFIER} ${BUGLY_APP_VERSION}]”
UPLOAD_RESULT=”SUCCESS”
else
echo “Error: Failed to upload the zip archive file to Bugly.”
fi
#Remove temp dSYM archive
echo “Remove temporary zip archive: ${DSYM_ZIP_FPATH}”
#/bin/rm -f “${DSYM_ZIP_FPATH}”
if [ “$?” -ne 0 ]; then
exitWithMessage “Error: Failed to remove temporary zip archive.” 0
fi
echo “——————————–“
echo “${UPLOAD_RESULT} – dSYM upload complete.”
if [[ “${UPLOAD_RESULT}” == “FAILTURE” ]]; then
echo “——————————–“
echo “Failed to upload the dSYM”
echo “Please check the script and try it again.”
fi
echo “—————————————————————-“
}
# .dSYM文件信息
DSYM_FOLDER=”${DWARF_DSYM_FOLDER_PATH}”
IFS=$’\n’
echo “Scaning dSYM FOLDER: ${DSYM_FOLDER} …”
RET=”F”
for dsymFile in $(find “$DSYM_FOLDER” -name ‘*.dSYM’); do
RET=”T”
echo “Found dSYM file: $dsymFile”
uploadDSYM $dsymFile
done
if [ $RET = “F” ]; then
exitWithMessage “No .dSYM found in ${DSYM_FOLDER}” 0
fi
Java编程ture找不到符号,[未解决]Bugly中上传符号表dSYM文件相关推荐
- Java编程ture找不到符号,为什么会出现这样的错误呢
为什么会出现这样的错误呢 //使用CustomButton 类的Averageing Applet import java.awt.*; import java.applet.*; import ja ...
- java上传过大图片超时_解决.net项目中上传的图片或者文件太大无法上传问题
最近做项目的时候 用户提出要上传大图片 一张图片有可能十几兆 本来用的第三方的上传控件 有限制图片上传大小的设置 以前设置的是2M 按照用户的要求 以为直接将限制图片上传大小的设置改下就可 ...
- JAVA 编程中的汉字处理(1)---java 编程技术中汉子问题的分析与解决
Java 编程技术中汉字问题的分析及解决 段明辉, 自由撰稿人 简介: 在基于 Java 语言的编程中,我们经常碰到汉字的处理及显示的问题.一大堆看不懂的乱码肯定不是我们愿意看到的显示效果,怎样才能够 ...
- [ JAVA编程 ] double类型计算精度丢失问题及解决方法
[ JAVA编程 ] double类型计算精度丢失问题及解决方法 参考文章: (1)[ JAVA编程 ] double类型计算精度丢失问题及解决方法 (2)https://www.cnblogs.co ...
- java提示系统找不到指定路径怎么解决?
Java属于入门容易,天花板却极高的编程语言.对于java工程师来说技术的不断发展,需要不断学习java进阶知识.为了帮助大家巩固基础,本文解答了java提示系统找不到指定路径怎么解决?等相关问题,希 ...
- linux fopen 段错误,fopen出现段错误,不解[已解决]
fopen出现段错误,不解[已解决] (2012-04-10 04:10:26) 标签: 杂谈 fopen出现段错误,不解[已解决]本来在Gentoo下编的一个C库,通过swig提供一个python接 ...
- python datetime 格式化_[已解决]Python中用strftime格式化datetime出错
折腾: [已解决]Flask中的templates的html中格式化datetime 期间,用代码:@app.template_filter('datetime_format') def_jinja2 ...
- bugly上传符号表
A.手动上传: ①:查找dsym文件: XCode -> Window -> Organizer -> 找到打包好的文件(Show in Finder)-> 选中文件(右键显示 ...
- bugly上传符号表文件详细教程
1.下载上传符号表工具 https://bugly.qq.com/v2/downloads 2.在终端 进入到 buglyqq-upload-symbol.jar 文件夹中 3 执行命令 java - ...
- iOS之Bugly上传符号表
前提条件:Mac中需要先安装java环境,只支持jdk1.8.0,终端输入:java -version 看看版本号是多少 1.在bugly官网下载符号表上传工具 2.桌面新建一个文件夹名字可以随便起, ...
最新文章
- 深挖数据价值 阿里云栖开年大会报道
- 获取两个数百分比的值
- Matlab | matpower5.0:最优潮流执行步骤
- 集合 setfrozenset
- CORS解决WebApi跨域问题(转)
- ES5-19 变量声命周期、垃圾回收原理、arguments
- webpack整体了解
- 蓝桥杯 ALGO-1 算法训练 区间k大数查询
- 摄影获得最佳图像的十大要诀_十大最佳应用程序性能管理工具
- 模电实验——实验三 集成运算放大器的基本应用
- 我国计算机发展历程简述,简述计算机的发展历程??
- 2-PHP代码审计——PHPCMSV9.6.0 sql注入漏洞
- HTML5和CSS3 API文档分享
- golang远程桌面服务器,go+govcl+go-ole实现的windows远程桌面
- 复刻一个羊了个羊掘金商城版
- java计算机毕业设计智友少儿编程学习平台源码+mysql数据库+系统+部署+lw文档
- windows 本地搭建git仓库_Windows平台下Github远程仓库的搭建-Go语言中文社区
- pyinstaller打包exe文件的详细步骤及过程中遇到的问题
- 计算机学硕一志愿仅录取一人,调剂录取几十人!重庆理工大学人工智能学院...
- java.sql.SQLException: Subquery returns more than 1 row