tencent cloud

Tencent Cloud Observability Platform

Upload the symbol table

Download
Focus Mode
Font Size
Last updated: 2026-05-25 18:53:28
Support uploading symbol tables through two methods: web page upload and symbol table upload tool.

Upload symbol tables via the web page

Upload portal

Entry 1: Settings/Symbol Table

1. On the Setting > Symbol Table page, click Upload Symbol Table.

2. In the symbol table upload dialog box, select the symbol table type, Version No., build number, and then upload the symbol table file.


Entry 2: Case Details/Symbol Table

1. When analyzing exception cases, if symbols are found untranslated, you can directly switch to the Symbol Table Tab, click Upload Pending, click to upload to quickly upload the symbol table.

2. When uploading a symbol table on the case details page, the system assumes the user intends to upload the specified symbol table file. It will automatically populate the Version No. and build number. For SO or dSYM files, the UUID will also be auto-filled and validated.


Upload Steps

Upload the Android mapping file

Compress the mapping file to be uploaded into a mapping.zip file and drag it to the upload area.
When uploading for the first time, it will prompt that the upload is successful. When uploading again, it will prompt for overwrite upload. If you confirm to overwrite, click upload continue to overwrite the file with the same name.

Note:
For mapping files with the same version number and build number, a batch upload feature is currently supported, distinguished by file names. During operation, place multiple mapping files (it is recommended to name the host file as mapping.txt and other component or plugin files as xxx_mapping.txt) in the same directory, compress them into a zip file, and upload. Subsequently, the translation service assembles a large mapping file prioritizing mapping.txt over xxx_mapping.txt. For a single stack trace line, it first uses the host mapping file for translation, then applies the component or plugin mapping file.

Upload Android SO file

Compress the SO symbol table file to be uploaded into a zip file and drag it to the upload area.
Note:
For SO symbol table files with the same version number and build number, batch upload is supported. These files are uniquely identified by UUID. If a file with the same UUID is detected as already uploaded, the system will prompt the user whether to overwrite it.


Upload iOS dSYM file

Compress the dSYM file to be uploaded into a zip file and drag it to the upload area.
Note:
For dSYM files with the same version number and build number, batch upload is supported. These files are uniquely identified by UUID. If a file with the same UUID is detected as already uploaded, the system will prompt the user whether to overwrite it.


Upload the Harmony SO file

The operation is the same as uploading Android SO files.

Upload Harmony nameCache & SourceMaps files

The operation is the same as uploading Android mapping files, and supports independent upload of nameCache and SourceMaps files.

Example

Batch upload SO symbol table files

As shown in the figure below, under the build/intermediates/cmake/release/obj directory, you can see directories for different CPU architectures. You can directly compress the entire obj directory to obtain the obj.zip file, then drag the obj.zip file directly to the upload area, and click Confirm to complete the process.
When the file is large, the process may take longer; please wait patiently. Once uploaded successfully, you can view the batch-uploaded files on the web page.


Upload the symbol table for the Android application plugin

Android mapping files locate the symbol table for a specific exception through the App version and build number. The platform's symbol table system supports uploading multiple mapping files for a specified App version and build number (it is recommended to name the host file as mapping.txt and plugin or component files as xxx_mapping.txt). You can compress all files in a directory into a zip file for batch upload, or upload them in batches. If an incorrect mapping file for a plugin is uploaded, it can be overwritten, and the platform will indicate the overwrite status.
Important:
Android mapping files are uniquely identified by the App version, build number, and file name, regardless of the specific file content. That is, even if the same mapping file is uploaded twice, as long as there is a difference in any of the three elements—App version number, build number, or file name—it will not be recognized as an overwrite upload.

Symbol Table Upload Tool upload

Operation Steps

1. Download the symbol table upload tool. The latest version of the symbol table upload tool is V3.4.24. Please click to download the symbol table tool.
2. After downloading the tool, you will see bugly_cloud_sgp_localtool_3.4.24.jar.

3. Prepare the Java runtime environment.
Note:
The symbol table upload tool is a jar toolkit that depends on the Java environment, compiled under JDK version 8, and therefore can run in JRE environments of Java version 8 and above.
Currently, runtime environments for Java 8, Java 11, Java 17, and Java 19 have been verified on Mac platforms.
Windows platform
Linux platform
Mac platform
The steps to install JRE (Java Runtime Environment) on Windows are as follows.
1. Visit the official Oracle website to download the JRE installer for Windows. Please access the following link and select the JRE installer package suitable for your Windows version (32-bit or 64-bit).
https://www.oracle.com/java/technologies/downloads/#jdk20-windows

2. After the download is complete, double-click the downloaded installer file (for example: jdk-20_windows-x64_bin.exe) to launch the installation program.
3. In the installation wizard, follow the prompts. Typically, you can use the default settings. Click Next to continue the installation process.
4. After the installation is complete, click Close to exit the installation wizard.
5. To ensure that JRE is correctly installed and accessible from the command line, open Command Prompt (press the Win key, type "cmd", and press Enter).
6. Enter the following command in Command Prompt and press the Enter key:
java -version
If the installation is successful, you will see output similar to the following, displaying the installed Java version:
java version "20.0.1"
Java(TM) SE Runtime Environment (build 20.0.1+9-29)
Java HotSpot(TM) 64-Bit Server VM (build 20.0.1+9-29, mixed mode)
Now, you have successfully installed JRE on Windows.
The steps to install JRE (Java Runtime Environment) on Linux platforms are as follows. The following uses Ubuntu as an example:
1. Open the Terminal (shortcut: Ctrl + Alt + T).
2. Update the package list.
sudo apt update
3. Install the default Java Runtime Environment (typically the latest version of OpenJDK).
sudo apt install default-jre
Enter your password and press Enter, then press the "Y" key when prompted to confirm the installation.
4. After the installation is complete, verify whether JRE has been successfully installed. Enter the following command in the Terminal and press the Enter key:
java -version
If the installation is successful, you will see output similar to the following, displaying the installed Java version.
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)
Now, you have successfully installed JRE on the Linux (Ubuntu) platform.
Note:
Here, the OpenJDK version of JRE is installed. If you require Oracle JRE, visit the official Oracle website to download the JRE installation package for Linux and follow the official documentation for installation.
To install multiple Java versions on Mac, you can use the package manager Homebrew. The following are the steps to install and manage multiple Java versions.
1. Install Homebrew (if not already installed) by opening the Terminal and running the following command.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
After the installation is complete, the Terminal will display corresponding prompts.
2. Add Homebrew's cask version repository.
brew tap homebrew/cask-versions
3. Install the required Java versions. For example, if you need to install Java 8 and Java 11, run the following commands:
brew install --cask adoptopenjdk8
brew install --cask adoptopenjdk11
You can install other Java versions by replacing the number.
4. Check the installed Java versions by running the following command.
/usr/libexec/java_home -V
This will display the installed Java versions and their paths.
5. To switch between Java versions, you can set the JAVA_HOME environment variable. For example, to switch to Java 8, run the following command:
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
To switch to Java 11, run:
export JAVA_HOME=$(/usr/libexec/java_home -v 11)
You can switch to other Java versions by replacing the number.
6. To make the switch persistent, add the above export command to your shell configuration file (such as .bashrc, .bash_profile, or .zshrc). This way, the JAVA_HOME environment variable will be automatically set whenever you open a new terminal window. Now, you have installed multiple Java versions on your Mac and can switch between them as needed.
7. You can check the current Java version via the following command.
java -version
If the installation is successful, you will see output similar to the following, displaying the installed Java version.
openjdk version "1.8.0_282"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_282-b08)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.282-b08, mixed mode)
4. Files can be uploaded using tools.
The command format is as follows:
java -jar rumpro-upload-symbol.jar -appid <App ID>
-appkey <App KEY>
-version <App Version or SO Version>
-buildNo <App Build Number>
-platform <Platform>
-inputSymbol <Original Symbol File Path>
-inputMapping <mapping.txt file Path>
The parameter description is as follows:
Parameter
Required
Description
appId
Yes
The unique identifier assigned to the product by the platform can be viewed in the application list.
appkey
Yes
The identifier assigned to the product by the platform can be viewed in the application list.
version
Yes
The version number. When uploading a Java mapping.txt file, it refers to the corresponding App version number; when uploading an SO or dSYM file, it refers to the version number of the corresponding SO or dSYM.
Note:
Avoid including special characters such as ( ) in the version number, otherwise it may throw an error during execution.
If a mapping file is reported, the version number here must match the actual version number of the App to which the stack to be restored belongs. This is because each App version corresponds to a unique mapping.txt file, and the stack cannot be restored if they do not match.
If you are only uploading SO symbol tables, it is recommended to fill in the version number corresponding to the SO for easy identification during symbol table review. Regardless of what you enter, it does not affect symbol resolution, as the SO file is uniquely identified by its UUID.
If you are only uploading dSYM symbol tables, it is recommended to fill in the version number corresponding to the dSYM for easy identification during symbol table review. Regardless of what you enter, it does not affect symbol resolution, as the dSYM file is uniquely identified by its UUID.

buildNo
No
The build number. If you are uploading a mapping.txt file and have used a build number during SDK initialization, you must provide the correct build number when uploading the symbol table; otherwise, it will result in the failure to restore Java stack traces.
platform
Yes
Platform type. Currently supported options are Android, iOS, and Mac. Note: Case sensitivity must be correct.
inputSymbol
Yes
The directory path where the original symbol tables [dSYM, SO] are located. For Android platforms containing both mapping and SO files, enter the common parent directory storing both original symbol tables here, or specify the mapping file path via inputMapping.
inputMapping
Yes
The directory path where the mapping.txt file for the Android platform is located. Specific to Android platform, ignore for iOS.

Example

Case 1: Upload an SO symbol table file

Reference command line:
java -jar rumpro-upload-symbol.jar -appid a278f01047 -appkey 1e5ab6b3-b6fa-4f9b-a3c2-743d31dffe86 -version 4.3.0 -platform Android -inputSymbol
/Users/lilyxie/Downloads/upload_target/obj/arm64-v8a/libbugly_dumper.SO
Results Summary:
...
##[info]args is ArgsParser{appId='a278f01047'appKey='1e5ab6b3-b6fa-4f9b-a3c2-743d31dffe86', appPackage='com.tencent.demo.rumprodemo',
appVersion='4.3.0', appBuildNo='null', platformId=Android', enviroment=null', symbolPathName='/Users/lilyxie/Downloads/upload_target
/obj/arm64-v8a/libbugly_dumper.SO', mappingPathName='null', appPathName='null'}
...
##[info]request jSOn is {"appID":"a278f01047","authSign":"1e5ab6b3-b6fa-4f9b-a3c2-743d31dffe86","appVersion":"4.3.0",
"appBundleID":"com.tencent.demo.rumprodemo","appPlatform":1,"appBuildNumber":null,"fileType":201,"fileSize":83101,
"fileMD5":"7237e936f6bf7e8ed52a70f67c02aa31","clientType":7,"clientVersion":"1.0.48","buildPlatform":1,
"buildID":null,"buildName":"null&null","fileInfoList":[{"name":"buglySymbol&arm64-v8a&libbugly_dumper&a5cd2db99a1f45b45469979205f09730.zip",
"UUID":"a5cd2db99a1f45b45469979205f09730","arch":"arm64-v8a","type":101,"moduleName":"libbugly_dumper"}],
"buildRepo":null,"buildBranch":null,"buildCommitID":null}
##[info]request upload Info Url is https://symbol-v2.bugly.qq.com/trpc.eff_tool.symbol_upload_gateway.SymbolUploadGateway/uploadInfo
##[info]request gitRepoUrl is null
##[info]request gitRepoBranch is null
##[info]request gitRepoHeadCommitId is null
##[info]envtype is null
##[info]getAppModuleList is null
##[info]retCode: 200 response message: {"statusCode":0,"msg":"success","uploadReqID":"a278f01047-2e0f441c-da63-46a3-b03b-6b5ce1bdb008"}
##[info]now begin to uploadFileContent
##[info]request uploadFileurl is https://symbol-v2.bugly.qq.com/trpc.eff_tool.symbol_upload_gateway.SymbolUploadGateway/uploadFile
##[info]retCode: 200 response message: {"statusCode":0,"msg":"success","uploadReqID":"a278f01047-2e0f441c-da63-46a3-b03b-6b5ce1bdb008"}

Example 2: Uploading multiple SO symbol table files

Reference command line:
java -jar rumpro-upload-symbol.jar -appid a278f01047 -appkey 1e5ab6b3-b6fa-4f9b-a3c2-743d31dffe86 -version 4.3.0 -platform Android -inputSymbol
/Users/lilyxie/Downloads/upload_target/obj/arm64-v8a
inputSymbol:
When uploading multiple SO symbol table files, inputSymbol requires the directory path of these files to be uploaded. For instance, the example demonstrates uploading all results from the entire arm64-v8a architecture.
Results Summary:
...
##[info]rumpro tools android params: -appid a278f01047 -appkey 1e5ab6b3-b6fa-4f9b-a3c2-743d31dffe86
-version 4.3.0 -platform Android -inputSymbol /Users/lilyxie/Downloads/upload_target/obj/arm64-v8a
...
##[info]request jSOn is {"appID":"a278f01047","authSign":"1e5ab6b3-b6fa-4f9b-a3c2-743d31dffe86",
"appVersion":"4.3.0","appBundleID":"com.tencent.demo.rumprodemo","appPlatform":1,
"appBuildNumber":null,"fileType":201,"fileSize":1359658,"fileMD5":"3a54e6b66b6901c6a51c528ea36d86dd",
"clientType":7,"clientVersion":"1.0.48","buildPlatform":1,"buildID":null,"buildName":"null&null",
"fileInfoList":[{"name":"buglySymbol&arm64-v8a&librmonitor_natmem&2655b543f9689d5dbcac22f995a18a44.zip",
"UUID":"2655b543f9689d5dbcac22f995a18a44","arch":"arm64-v8a","type":101,"moduleName":"librmonitor_natmem"},
{"name":"buglySymbol&arm64-v8a&libBugly_Native&e62597d2365613d35f1110454fa072a2.zip",
"UUID":"e62597d2365613d35f1110454fa072a2","arch":"arm64-v8a","type":101,"moduleName":"libBugly_Native"},
{"name":"buglySymbol&arm64-v8a&libbugly_dumper&a5cd2db99a1f45b45469979205f09730.zip",
"UUID":"a5cd2db99a1f45b45469979205f09730","arch":"arm64-v8a","type":101,"moduleName":"libbugly_dumper"},
{"name":"buglySymbol&arm64-v8a&librmonitor_memory_dump&3958037915dd881290ba72a3f598d862.zip",
"UUID":"3958037915dd881290ba72a3f598d862","arch":"arm64-v8a","type":101,"moduleName":"librmonitor_memory_dump"},
{"name":"buglySymbol&arm64-v8a&librmonitor_fd_stack&e8d847dac7e5fbdb8c134ccc74799e7d.zip",
"UUID":"e8d847dac7e5fbdb8c134ccc74799e7d","arch":"arm64-v8a","type":101,"moduleName":"librmonitor_fd_stack"},
{"name":"buglySymbol&arm64-v8a&librmonitor_core&54ef01f7521cf885a88c387fb6782875.zip","UUID":"54ef01f7521cf885a88c387fb6782875",
"arch":"arm64-v8a","type":101,"moduleName":"librmonitor_core"},{"name":"buglySymbol&arm64-v8a&librmonitor_base&5990bc6d36f0643987af905c60b3d8f8.zip",
"UUID":"5990bc6d36f0643987af905c60b3d8f8","arch":"arm64-v8a","type":101,"moduleName":"librmonitor_base"}],
"buildRepo":null,"buildBranch":null,"buildCommitID":null}
##[info]request upload Info Url is https://symbol-v2.bugly.qq.com/trpc.eff_tool.symbol_upload_gateway.SymbolUploadGateway/uploadInfo
##[info]request gitRepoUrl is null
##[info]request gitRepoBranch is null
##[info]request gitRepoHeadCommitId is null
##[info]envtype is null
##[info]getAppModuleList is null
##[info]retCode: 200 response message: {"statusCode":0,"msg":"success","uploadReqID":"a278f01047-aae1c0a6-492b-4ebc-b6d7-9ed51e3571b1"}
##[info]now begin to uploadFileContent
##[info]request uploadFileurl is https://symbol-v2.bugly.qq.com/trpc.eff_tool.symbol_upload_gateway.SymbolUploadGateway/uploadFile
##[info]retCode: 200 response message: {"statusCode":0,"msg":"success","uploadReqID":"a278f01047-aae1c0a6-492b-4ebc-b6d7-9ed51e3571b1"}
Verify symbol table upload results:


Example 3: Upload mapping.txt file

Reference command line:
java -jar rumpro-upload-symbol.jar -appid a278f01047 -appkey 1e5ab6b3-b6fa-4f9b-a3c2-743d31dffe86 -version 4.3.1 -buildNo 1 -platform Android
-inputMapping /Users/temp/app/build/outputs/mapping/r8/release/mapping.txt
Results Summary:
...
##[info]args is ArgsParser{appId='a278f01047'appKey='1e5ab6b3-b6fa-4f9b-a3c2-743d31dffe86', appPackage='com.tencent.demo.rumprodemo',
appVersion='4.3.1', appBuildNo='1', platformId=Android', enviroment=null', symbolPathName='null', mappingPathName='/Users/lilyxie/
workspace/apm/QAPM_SDK/app/build/outputs/mapping/r8/release/mapping.txt', appPathName='null'}
...
##[info]symbolFileDetail is [{"name":"mapping&616cc28aa0dfdfce4cfcef72750a4583.zip","type":102}]
##[info]request jSOn is {"appID":"a278f01047","authSign":"1e5ab6b3-b6fa-4f9b-a3c2-743d31dffe86","appVersion":"4.3.1",
"appBundleID":"com.tencent.demo.rumprodemo","appPlatform":1,"appBuildNumber":null,"fileType":202,"fileSize":727073,
"fileMD5":"b409dc5beb8061397429086273d1e023","clientType":7,"clientVersion":"1.0.48","buildPlatform":1,"buildID":null,
"buildName":"null&null","fileInfoList":[{"name":"mapping&616cc28aa0dfdfce4cfcef72750a4583.zip","type":102}],"buildRepo":null,
"buildBranch":null,"buildCommitID":null}
##[info]request upload Info Url is https://symbol-v2.bugly.qq.com/trpc.eff_tool.symbol_upload_gateway.SymbolUploadGateway/uploadInfo
##[info]request gitRepoUrl is null
##[info]request gitRepoBranch is null
##[info]request gitRepoHeadCommitId is null
##[info]envtype is null
##[info]getAppModuleList is null
##[info]retCode: 200 response message: {"statusCode":0,"msg":"success","uploadReqID":"a278f01047-72fd1c79-7096-4818-8244-61248c5e0fe2"}
##[info]now begin to uploadFileContent
##[info]request uploadFileurl is https://symbol-v2.bugly.qq.com/trpc.eff_tool.symbol_upload_gateway.SymbolUploadGateway/uploadFile
##[info]retCode: 200 response message: {"statusCode":0,"msg":"success","uploadReqID":"a278f01047-72fd1c79-7096-4818-8244-61248c5e0fe2"}

Case 4: Simultaneously upload SO files and mapping.txt files

Reference command line:
java -jar rumpro-upload-symbol.jar -appid a278f01047 -appkey 1e5ab6b3-b6fa-4f9b-a3c2-743d31dffe86 -version 4.3.0 -buildNo 2 -platform Android -inputSymbol /Users/lilyxie/Downloads/upload_target/obj/arm64-v8a -inputMapping /Users/lilyxie/workspace/apm/QAPM_SDK/app/build/outputs/mapping/r8/release/mapping.txt
Results Summary:
...
##[info]args is ArgsParser{appId='a278f01047'appKey='1e5ab6b3-b6fa-4f9b-a3c2-743d31dffe86', appPackage='com.tencent.demo.rumprodemo',
appVersion='4.3.0', appBuildNo='2', platformId=Android', enviroment=null', symbolPathName='/Users/lilyxie/Downloads/upload_target/obj/arm64-v8a',
mappingPathName='/Users/lilyxie/workspace/apm/QAPM_SDK/app/build/outputs/mapping/r8/release/mapping.txt', appPathName='null'}
...
##[info]request jSOn is {"appID":"a278f01047","authSign":"1e5ab6b3-b6fa-4f9b-a3c2-743d31dffe86","appVersion":"4.3.0",
"appBundleID":"com.tencent.demo.rumprodemo","appPlatform":1,"appBuildNumber":null,"fileType":200,"fileSize":2086710,"fileMD5":"5e89401e93597eded44527a9345bc43c",
"clientType":7,"clientVersion":"1.0.48","buildPlatform":1,"buildID":null,"buildName":"null&null","fileInfoList":
[{"name":"buglySymbol&arm64-v8a&librmonitor_natmem&2655b543f9689d5dbcac22f995a18a44.zip","UUID":"2655b543f9689d5dbcac22f995a18a44",
"arch":"arm64-v8a","type":101,"moduleName":"librmonitor_natmem"},{"name":"buglySymbol&arm64-v8a&libBugly_Native&e62597d2365613d35f1110454fa072a2.zip",
"UUID":"e62597d2365613d35f1110454fa072a2","arch":"arm64-v8a","type":101,"moduleName":"libBugly_Native"},
{"name":"buglySymbol&arm64-v8a&libbugly_dumper&a5cd2db99a1f45b45469979205f09730.zip","UUID":"a5cd2db99a1f45b45469979205f09730",
"arch":"arm64-v8a","type":101,"moduleName":"libbugly_dumper"},{"name":"buglySymbol&arm64-v8a&librmonitor_memory_dump&3958037915dd881290ba72a3f598d862.zip",
"UUID":"3958037915dd881290ba72a3f598d862","arch":"arm64-v8a","type":101,"moduleName":"librmonitor_memory_dump"},
{"name":"buglySymbol&arm64-v8a&librmonitor_fd_stack&e8d847dac7e5fbdb8c134ccc74799e7d.zip","UUID":"e8d847dac7e5fbdb8c134ccc74799e7d",
"arch":"arm64-v8a","type":101,"moduleName":"librmonitor_fd_stack"},{"name":"buglySymbol&arm64-v8a&librmonitor_core&54ef01f7521cf885a88c387fb6782875.zip",
"UUID":"54ef01f7521cf885a88c387fb6782875","arch":"arm64-v8a","type":101,"moduleName":"librmonitor_core"},
{"name":"buglySymbol&arm64-v8a&librmonitor_base&5990bc6d36f0643987af905c60b3d8f8.zip","UUID":"5990bc6d36f0643987af905c60b3d8f8",
"arch":"arm64-v8a","type":101,"moduleName":"librmonitor_base"},{"name":"mapping&616cc28aa0dfdfce4cfcef72750a4583.zip","type":102}],
"buildRepo":null,"buildBranch":null,"buildCommitID":null}
##[info]request upload Info Url is https://symbol-v2.bugly.qq.com/trpc.eff_tool.symbol_upload_gateway.SymbolUploadGateway/uploadInfo
##[info]request gitRepoUrl is null
##[info]request gitRepoBranch is null
##[info]request gitRepoHeadCommitId is null
##[info]envtype is null
##[info]getAppModuleList is null
##[info]retCode: 200 response message: {"statusCode":0,"msg":"success","uploadReqID":"a278f01047-c6dee54b-a8c0-4ec8-b478-5cce8dc228bf"}
##[info]now begin to uploadFileContent
##[info]request uploadFileurl is https://symbol-v2.bugly.qq.com/trpc.eff_tool.symbol_upload_gateway.SymbolUploadGateway/uploadFile
##[info]retCode: 200 response message: {"statusCode":0,"msg":"success","uploadReqID":"a278f01047-c6dee54b-a8c0-4ec8-b478-5cce8dc228bf"}

Case 5: Upload a dSYM file

Reference command line:
java -jar rumpro-upload-symbol.jar -appid a53fd62f6e -appkey aa1c666f-d5e7-446b-8dc7-3bcb3bda7c7f -version 2.3.0 -platform IOS -inputSymbol
/Users/lilyxie/workspace/temp/dSYM/Alamofire.framework.dSYM
Results Summary:
...
##[info]args is ArgsParser{appId='a53fd62f6e'appKey='aa1c666f-d5e7-446b-8dc7-3bcb3bda7c7f', appPackage='com.tencent.rumpro.demo.presentation.ios',
appVersion='2.3.0', appBuildNo='null', platformId=IOS', enviroment=null', symbolPathName='/Users/lilyxie/workspace/temp/dSYM/Alamofire.framework.dSYM',
mappingPathName='null', appPathName='null'}
...
##[info]request jSOn is {"appID":"a53fd62f6e","authSign":"aa1c666f-d5e7-446b-8dc7-3bcb3bda7c7f","appVersion":"2.3.0",
"appBundleID":"com.tencent.rumpro.demo.presentation.ios","appPlatform":2,"appBuildNumber":null,"fileType":201,"fileSize":350816,
"fileMD5":"f69a32d33b16756a75d1716f728cef00","clientType":7,"clientVersion":"1.0.48","buildPlatform":1,"buildID":null,"buildName":"null&null",
"fileInfoList":[{"name":"buglySymbol&Alamofire&arm64&5471ad32641a3f9f87610b133693b882.zip","UUID":"5471ad32641a3f9f87610b133693b882",
"arch":"arm64","type":101,"moduleName":"Alamofire"},{"name":"buglySymbol&Alamofire&x86_64&60e900a3b60035b98fd84ccb13c4ec55.zip",
"UUID":"60e900a3b60035b98fd84ccb13c4ec55","arch":"x86_64","type":101,"moduleName":"Alamofire"}],"buildRepo":null,"buildBranch":null,"buildCommitID":null}
##[info]request upload Info Url is https://symbol-v2.bugly.qq.com/trpc.eff_tool.symbol_upload_gateway.SymbolUploadGateway/uploadInfo
##[info]request gitRepoUrl is null
##[info]request gitRepoBranch is null
##[info]request gitRepoHeadCommitId is null
##[info]envtype is null
##[info]getAppModuleList is null
##[info]retCode: 200 response message: {"statusCode":0,"msg":"success","uploadReqID":"a53fd62f6e-ab4b2b2a-b074-4ecd-b798-4d1d9458ba36"}

Case 6: Upload multiple dSYM files

Reference command line:
java -jar rumpro-upload-symbol.jar -appid a53fd62f6e -appkey aa1c666f-d5e7-446b-8dc7-3bcb3bda7c7f -version 2.3.0
-platform IOS -inputSymbol /Users/lilyxie/workspace/temp/dSYM

Results Summary:
...
##[info]args is ArgsParser{appId='a53fd62f6e'appKey='aa1c666f-d5e7-446b-8dc7-3bcb3bda7c7f', appPackage='com.tencent.rumpro.demo.presentation.ios',
appVersion='2.3.0', appBuildNo='null', platformId=IOS', enviroment=null', symbolPathName='/Users/lilyxie/workspace/temp/dSYM', mappingPathName='null', appPathName='null'}
...
##[info]request jSOn is {"appID":"a53fd62f6e","authSign":"aa1c666f-d5e7-446b-8dc7-3bcb3bda7c7f","appVersion":"2.3.0",
"appBundleID":"com.tencent.rumpro.demo.presentation.ios","appPlatform":2,"appBuildNumber":null,"fileType":201,"fileSize":4673680,
"fileMD5":"64c428045dfdcb0c376bea51760dd0df","clientType":7,"clientVersion":"1.0.48","buildPlatform":1,"buildID":null,"buildName":"null&null",
"fileInfoList":[{"name":"buglySymbol&APTimeZones&arm64&659c3d9d48de30b6b47792cebd69ad22.zip","UUID":"659c3d9d48de30b6b47792cebd69ad22",
"arch":"arm64","type":101,"moduleName":"APTimeZones"},{"name":"buglySymbol&APTimeZones&x86_64&cae5639b99b030bd8c25d501a1e9262f.zip",
"UUID":"cae5639b99b030bd8c25d501a1e9262f","arch":"x86_64","type":101,"moduleName":"APTimeZones"},{"name":"buglySymbol&NearbyWeather&arm64&cd705ee49b29330dbcfacbd00774c7ff.zip",
"UUID":"cd705ee49b29330dbcfacbd00774c7ff","arch":"arm64","type":101,"moduleName":"NearbyWeather"},{"name":"buglySymbol&NearbyWeather&x86_64&f9813c5ec1a932f7a06e4167448ac9a2.zip",
"UUID":"f9813c5ec1a932f7a06e4167448ac9a2","arch":"x86_64","type":101,"moduleName":"NearbyWeather"},{"name":"buglySymbol&Rswift&arm64&915c4f2d6c6c3ce4821c6e8df1ce7001.zip",
"UUID":"915c4f2d6c6c3ce4821c6e8df1ce7001","arch":"arm64","type":101,"moduleName":"Rswift"},{"name":"buglySymbol&Rswift&x86_64&1d7a56292ec73517a165b3a4645ab9b3.zip",
"UUID":"1d7a56292ec73517a165b3a4645ab9b3","arch":"x86_64","type":101,"moduleName":"Rswift"},{"name":"buglySymbol&FMDB&arm64&31fc108031e339b780ebfd18f1877861.zip",
"UUID":"31fc108031e339b780ebfd18f1877861","arch":"arm64","type":101,"moduleName":"FMDB"},{"name":"buglySymbol&FMDB&x86_64&79f5048815c43a6e99a8471edc4e071c.zip",
"UUID":"79f5048815c43a6e99a8471edc4e071c","arch":"x86_64","type":101,"moduleName":"FMDB"},{"name":"buglySymbol&PKHUD&x86_64&805ab0b5ac413f2a8205de88ab83374f.zip",
"UUID":"805ab0b5ac413f2a8205de88ab83374f","arch":"x86_64","type":101,"moduleName":"PKHUD"},{"name":"buglySymbol&PKHUD&arm64&4e20af3ed52a338b8f33683a462cc275.zip",
"UUID":"4e20af3ed52a338b8f33683a462cc275","arch":"arm64","type":101,"moduleName":"PKHUD"},{"name":"buglySymbol&RxRelay&arm64&f16c9ca211c332609db10ab1be487ef2.zip",
"UUID":"f16c9ca211c332609db10ab1be487ef2","arch":"arm64","type":101,"moduleName":"RxRelay"},{"name":"buglySymbol&RxRelay&x86_64&8c769ff24d4231ed98b0a95ee0967a51.zip",
"UUID":"8c769ff24d4231ed98b0a95ee0967a51","arch":"x86_64","type":101,"moduleName":"RxRelay"},{"name":"buglySymbol&RxCocoa&x86_64&34e3cf0ae4603507b361340ffcf2787a.zip",
"UUID":"34e3cf0ae4603507b361340ffcf2787a","arch":"x86_64","type":101,"moduleName":"RxCocoa"},{"name":"buglySymbol&RxCocoa&arm64&72cd027e9b59367a9a7b5febac26452c.zip",
"UUID":"72cd027e9b59367a9a7b5febac26452c","arch":"arm64","type":101,"moduleName":"RxCocoa"},{"name":"buglySymbol&RxSwift&arm64&d4975416847c3104aa199584ca9e9c14.zip",
"UUID":"d4975416847c3104aa199584ca9e9c14","arch":"arm64","type":101,"moduleName":"RxSwift"},{"name":"buglySymbol&RxSwift&x86_64&03ea574855783e2080ccb8473c8c70d6.zip",
"UUID":"03ea574855783e2080ccb8473c8c70d6","arch":"x86_64","type":101,"moduleName":"RxSwift"},{"name":"buglySymbol&TextFieldCounter&arm64&3e1d2e3091c03c6a926132fd8e6787c2.zip",
"UUID":"3e1d2e3091c03c6a926132fd8e6787c2","arch":"arm64","type":101,"moduleName":"TextFieldCounter"},{"name":"buglySymbol&TextFieldCounter&x86_64&5b22d2600ef2323693cbd4168f9442e9.zip",
"UUID":"5b22d2600ef2323693cbd4168f9442e9","arch":"x86_64","type":101,"moduleName":"TextFieldCounter"},{"name":"buglySymbol&SwiftMonkey&x86_64&5eb2bb9f2535313bb6d52d20cb997c3f.zip",
"UUID":"5eb2bb9f2535313bb6d52d20cb997c3f","arch":"x86_64","type":101,"moduleName":"SwiftMonkey"},{"name":"buglySymbol&SwiftMonkey&arm64&ce1692374ecb37fbb0cf58671f91687d.zip",
"UUID":"ce1692374ecb37fbb0cf58671f91687d","arch":"arm64","type":101,"moduleName":"SwiftMonkey"},{"name":"buglySymbol&RxFlow&arm64&05ab5fa62ccc33ac92bee8302f3c03ac.zip",
"UUID":"05ab5fa62ccc33ac92bee8302f3c03ac","arch":"arm64","type":101,"moduleName":"RxFlow"},{"name":"buglySymbol&RxFlow&x86_64&8b4df307db4a34d2b003d65eb5f6990f.zip",
"UUID":"8b4df307db4a34d2b003d65eb5f6990f","arch":"x86_64","type":101,"moduleName":"RxFlow"},{"name":"buglySymbol&NearbyWeatherUITests&arm64&2d853bcf1c703a6ebb0767dae49033d3.zip",
"UUID":"2d853bcf1c703a6ebb0767dae49033d3","arch":"arm64","type":101,"moduleName":"NearbyWeatherUITests"},{"name":"buglySymbol&NearbyWeatherUITests&x86_64&98bcb7abb3a1376593d8b88be64102d4.zip",
"UUID":"98bcb7abb3a1376593d8b88be64102d4","arch":"x86_64","type":101,"moduleName":"NearbyWeatherUITests"},{"name":"buglySymbol&Alamofire&arm64&5471ad32641a3f9f87610b133693b882.zip",
"UUID":"5471ad32641a3f9f87610b133693b882","arch":"arm64","type":101,"moduleName":"Alamofire"},{"name":"buglySymbol&Alamofire&x86_64&60e900a3b60035b98fd84ccb13c4ec55.zip",
"UUID":"60e900a3b60035b98fd84ccb13c4ec55","arch":"x86_64","type":101,"moduleName":"Alamofire"}],"buildRepo":null,"buildBranch":null,"buildCommitID":null}
##[info]request upload Info Url is https://symbol-v2.bugly.qq.com/trpc.eff_tool.symbol_upload_gateway.SymbolUploadGateway/uploadInfo
##[info]request gitRepoUrl is null
##[info]request gitRepoBranch is null
##[info]request gitRepoHeadCommitId is null
##[info]envtype is null
##[info]getAppModuleList is null
##[info]retCode: 200 response message: {"statusCode":0,"msg":"success","uploadReqID":"a53fd62f6e-7b7c95ad-c497-4297-b8af-f919741228bb"}
##[info]now begin to uploadFileContent
##[info]request uploadFileurl is https://symbol-v2.bugly.qq.com/trpc.eff_tool.symbol_upload_gateway.SymbolUploadGateway/uploadFile
##[info]retCode: 200 response message: {"statusCode":0,"msg":"success","uploadReqID":"a53fd62f6e-7b7c95ad-c497-4297-b8af-f919741228bb"}

Case 7: Upload Harmony platform symbol table

If you need to upload HarmonyOS SO files, first set the temporary environment variable USE_LLVM to true. Reference command line:
export USE_LLVM=true
Execute the symbol table upload command.
java -jar rumpro-upload-symbol.jar -appid a53fd62f6e -appkey aa1c666f-d5e7-446b-8dc7-3bcb3bda7c7f -version 1.0.0 -platform Harmony -inputSymbol
./harmony_test/libdemo.SO -inputMapping harmony_test/obfuscation -buildNo 0
Note:
Before uploading HarmonyOS SO symbol tables, you must set the USE_LLVM environment variable; otherwise, the upload may fail.
When uploading, the platform must be set to Harmony, paying attention to case sensitivity.
Uploading nameCache and SourceMaps reuses the Android platform's -inputMapping parameter. The difference is that when the platform is HarmonyOS, files containing both nameCache and SourceMaps will be retrieved simultaneously.
Supports uploading a single SO or multiple SOs, allows separate uploads of nameCache and SourceMaps, and enables simultaneous uploads of SO with nameCache and SourceMaps. For examples, refer to Case 1, Case 2, Case 3, and Case 4. Ensure the platform is set correctly.
Replace the jar package name in the command with the actually used jar package name.
Upload successful. Results Summary:
##[info]args is ArgsParser{appId='a53fd62f6e', appKey='aa1c666f-d5e7-446b-8dc7-3bcb3bda7c7f', appPackage='null', appVersion='1.0.0', appBuildNo='2', platformId='Harmony',
enviroment='null', symbolPathName='./libdemo.SO', mappingPathName='harmony_test/obfuscation', appPathName='null'}
##[info]param is : AtomParam{bundleId='null', version='1.0.0', secret='null', platform='Harmony', platformModule='null', symbolPath='./libdemo.SO', appPath='null',
mappingPath='harmony_test/obfuscation', secretSource='input', secretInputAppId='a53fd62f6e', secretInputKey='aa1c666f-d5e7-446b-8dc7-3bcb3bda7c7f', buildNo='2',
buildPackageType='app', appModuleList='null', moduleName='null', envType='null'}
##[info]deleteDirFiles file path is /Users/zhuangchihui/Documents/TestData/buglybin/symbolTempStore/bugly_nameCache&85272d438d47884151c9b48bf36b5131.zip
##[info]deleteDirFiles file path is /Users/zhuangchihui/Documents/TestData/buglybin/symbolTempStore/SOurceMaps&7fc36306136e9f57db449eb0d61963a1.zip
##[info]deleteDirFiles file path is /Users/zhuangchihui/Documents/TestData/buglybin/symbolTempStore
##[info]deleteDirFiles file path is /Users/zhuangchihui/Documents/TestData/buglybin/symbolResult/BuglyMappingListZip.zip
##[info]deleteDirFiles file path is /Users/zhuangchihui/Documents/TestData/buglybin/symbolResult
##[info]deleteDirFiles file path is /Users/zhuangchihui/Documents/TestData/buglybin
##[info]packSymbolFile file
##[info]workspace:null
##[info]buildPackageType:app
##[info]find mapping file:[harmony_test/obfuscation/SOurceMaps.jSOn, harmony_test/obfuscation/bugly_nameCache.jSOn]
##[info]checkSymbolUpload request jSOn is {"appID":"a53fd62f6e","symbolUUIDs":["b151a429a057c9b78803bac7f4b15278"]}
##[info]retCode: 200 response message: {"statusCode":0,"msg":"All symbol tables have already been uploaded.","notExistUUIDs":[]}
...
##[info]request jSOn is {"appID":"a53fd62f6e","authSign":"aa1c666f-d5e7-446b-8dc7-3bcb3bda7c7f","appVersion":"1.0.0","appBundleID":null,"appPlatform":11,"appBuildNumber":"0",
"fileType":202,"fileSize":18657,"fileMD5":"80efa7c601bc5fe0c9c065c669997786","clientType":4,"clientVersion":"3.4.2","buildPlatform":1,"buildID":null,"buildName":"null&null",
"fileInfoList":[{"name":"SOurceMaps&7fc36306136e9f57db449eb0d61963a1.zip","type":102},{"name":"bugly_nameCache&85272d438d47884151c9b48bf36b5131.zip","type":102}],
"buildRepo":null,"buildBranch":null,"buildCommitID":null,"appType":0}
##[info]retCode: 200 response message: {"statusCode":0,"msg":"success","uploadReqID":"a53fd62f6e-84fd4052-44c7-45da-8b2e-ac59f3846733"}


Help and Support

Was this page helpful?

Help us improve! Rate your documentation experience in 5 mins.

Feedback