iOS dSYM详解和分析crash,ips文件

iOS崩溃日志解析实战:从ips文件到符号化crash的全流程指南 本文提供了iOS崩溃日志解析的完整实战指南,重点讲解如何将难以理解的.ips格式崩溃日志转化为可读信息。文章详细介绍了获取ips文件、转换为crash格式、定位匹配的dSYM文件、配置并使用symbolicatecrash工具进行符号化的全流程,并分享了处理多框架项目和常见问题的进阶技巧,帮助开发者高效定位和解决App崩溃问题。 阅读详情
AI摘要

本文详细介绍了iOS应用开发中dSYM文件的作用,它用于存储调试信息,便于符号化分析crash日志。文章还阐述了何时需要dSYM文件,如何获取dSYM、ips和crash文件,以及如何利用symbolicatecrash、atos命令和CrashSymbolicator.py脚本来进行符号化分析。此外,还提供了一个AppleScript脚本来简化符号化过程。

1.什么是dSYM文件

dSYM 文件是Xcode编译后,我们会看到一个同名的 dSYM 文件,dSYM 是保存 16 进制函数地址映射信息的中转文件,存储应用程序的调试 symbols。每次编译项目或者打包的时候都会生成一个新的 dSYM 文件,当我们软件release模式打包或上线后,不会像我们在Xcode中那样直观的看到用崩溃的错误,所以对于每一个发布版本我们都很有必要保存对应的 Archives 文件。不管你集没集成类似Buyly的三方,要符号化分析crash日志还是得要用到对应的dSYM文件,如果没有生成dSYM文件,可以看一下TARGETS下Build Settings里面有没有设置,如下图


2.什么时候会用到dSYM文件

1、APP提交审核,有闪退bug被拒,审核人员基本会上传crash文件给你,这时候就要自己符号化分析了。
2、你们编译给测试同事的包,如果你们关系好,大概率会重现一遍给你看,不然可能就是导出一个ips文件直接丢给你了,也可能还有一些不太好复现的crash。
3、自己有时候调试的时候可能会用到。

注:ips文件和crash文件不一样,Xcode13,iOS15以前设备ips文件改后缀成crash好像可以,但是之后 Apple 对符号化文件格式进行了 JSON 支持, 所以针对 iOS 15 以上产生的崩溃文件, 写入方式应该是做了调整, 所以在对 iOS 15 以上崩溃文件进行符号化时, ips改后缀会出现符号化失败, 报错 No crash report version in file 的问题,改为直接使用 CrashSymbolicator.py下面会讲到。

注:如果是发布Testflight版本,有些公司APP更新前会先提交Testflight版本公测一下,然后很多crash的日志可以通过Apple Store Connect里面对应的应用,Testflight下的反馈崩溃里面看到,可以直接Xcode打开,直接到Window->Organize->Crashes下直观看到崩溃错误


3.dSYM,ips,crash文件怎么拿到

1、dSYM
编译后Xcode13以前应该在项目的Products文件夹下,右键Show in Finder。
Xcode13后位于(/Users/用户名/Library/Developer/Xcode/DerivedData/对应的应用程序/Build/Products/Debug-iphoneos)。
打包的话位于(/Users/用户名/Library/Developer/Xcode/Archives)目录下,也可以在Xcode选择Window->Organize->Archives,Show in Finder。
2、crash
手机插上电脑Xcode选择Window->Devices and Simulators,找到对应的iphone,View Device Logs,右键Export Log。
3、ips
可能是测试同事可能其它同事可能用户,手机不能连接到电脑,可以在手机设置->隐私->分析与改进->分析数据,可以搜索对应的.ips.sycned文件然后查看导出修改成.ips的后缀就行,如果不是一眼能看到就直接搜项目名字。


4.具体怎么利用dSYM符号化分析

注:dSYM文件要和crash,ips等文件一一对应,否则符号化会失败,比如你1.0.1产生的crash,ips文件要和1.0.1编译的dSYM文件匹配,注意每次编译都会生成新的dSYM文件

1、怎么查看dSYM和ips,crash文件是否一一对应
笔者创建的项目叫Test,查看crash,ips直接双击打开查看,在下面例子图有标记,dSYM使用终端命令查看如下,Test.app.dSYM修改为对应的就行

    dwarfdump --uuid Test.app.dSYM

例子如下,终端显示的是符号 - 拼接的,crash和ips文件都是连起来的。

 

 

2、利用symbolicatecrash符号化分析crash文件

注:创建文件夹和文件夹放在哪都能自己看着办只要用到对应文件路径的时候,路径能对应就可以了,以下是笔者自己创建的方式。

首先在桌面创建一个dsym文件夹,里面再创建一个crash文件夹,dYSM文件和.crash文件拖入进去,symbolicatecrash复制进去(如果不复制工具出来,可以把文件复制到工具文件夹下执行命令),Result.crash是符号化分析后的产物,Makefile是一个用AppleScript写的一个脚本,打开执行就能得到Result.crash(前提里面写的一些路径得一一对应),还可以保存成一个应用程序双击打开执行,具体更多好玩的得自己去了解一下。symbolicatecrash工具存放在该路径下:

/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources

如果不一样可能是Xcode名字不一样?可以利用下面的命令去查找,如过你的Xcode就叫Xcode话,不然改成自己Xcode路径:

find /Applications/Xcode.app -name symbolicatecrash -type f

当三个文件都在同一个文件夹下后,我们可以通过命令来得到符号化分析后的crash文件,依次执行,命令如下:注:如果不执行第二条命令会有意想不到的结果

    1 cd Desktop/dsym/crash
    2 export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"
    3 ./symbolicatecrash Test.crash Test.app.dSYM > Result.crash

我们可以先来看看Test.crash日志符号化前后最后异常回溯长什么样子:

 


3、利用atos命令定位问题
其实除了symbolicatecrash工具,atos命令也能简单的分析一下,Test.app.dSYM/Contents/Resources/DWARF/Test 这里就存着具体符号

atos -o 项目名.app.dSYM/Contents/Resources/DWARF/项目名 -l 基地址 偏移后的地址
笔者使用的命令参考如下
atos -o Test.app.dSYM/Contents/Resources/DWARF/Test -l 0x1026b4000 0x1026B9904


得到的结果如上,没错就是最后异常回溯的第5行,有没有发现偏移后的地址和第6行的第一个地址是一致的,所以第1个地址是开始地址,第2个地址是基地址,第3个 + 22788就是偏移量 这是十进制的,计算如下 0x1026b4000 + 0x000005904(22788转16进制后的值)= 0x1026B9904 直接百度16进制加减法,大佬可以除外


4、利用CrashSymbolicator.py符号化解析 ips 文件
CrashSymbolicator.py脚本存放在该路径下:

/Applications/Xcode.app/Contents/SharedFrameworks/CoreSymbolicationDT.framework/Versions/A/Resources

如果不一样可能是Xcode名字不一样?可以利用下面的命令去查找,如过你的Xcode就叫Xcode话,不然改成自己Xcode路径:

find /Applications/Xcode.app -name CrashSymbolicator -type f

但是这回不能像复制symbolicatecrash工具一样复制出来了,因为这个脚本import其它文件也在同一个目录下,我们可以终端命令进入到这个文件夹下把 dSYM 文件和 ips 文件放入到该文件夹下执行符号化解析命令。

下面先看两个文件的对比。

 

image.png

image.png

 

CrashSymbolicator.py 操作稍微和 symbolicatecrash 会有些不同,因为是用 python 写的脚本,所以要使用 python3 来进行调用,否则会报错。(肯定有一大波人默默的在终端输入python查看版本号发现还是2.7左右的版本,内心一顿XXX,其实python3早已经安装了,不信你们终端直接输入python3试试,如果没有那得自己安装了……)

python3 CrashSymbolicator.py -d /xxx.app.dSYM -o /xxx.crash -p /xxx.ips

-d '符号表路径' -o '输出符号化路径' -p '苹果给的崩溃日志'

如果是在 CrashSymbolicator.py 文件夹下操作,dSYM 和 ips 文件需要复制到该脚本文件夹下,命令如下:

1 cd /Applications/Xcode.app/Contents/SharedFrameworks/CoreSymbolicationDT.framework/Versions/A/Resources
2 sudo python3 CrashSymbolicator.py -d Test.app.dSYM -o Result.ips -p Test.ips

5.利用AppleScript脚本快速进行符号化分析

上述在文件夹里面执行命令虽然可以完成,但是比较麻烦,笔者做了个脚本执行,下面就看看脚本里面的代码(其实就是封装了几条命令)
同样首先在之前桌面的dsym文件夹下创建一个 ips 文件夹,dYSM文件和 .ips 文件拖入进去,Makefile脚本准备好,打开执行,Result.ips文件就出来了,

image.png

 
Makefile.scpt代码如下:(具体语法这里就不做讲解了,用户名需要替换成自己的用户名,路径可以自行根据需要更改)

# 打开终端APP
tell application "Terminal"
    # 拼接导出ips结果命令 在此处替换对应的路径
    set pythonOrderStart to "python3 CrashSymbolicator.py"

    # 三个路径的前面的空格不要忽略了
    set dSYMPath to " -d /Users/用户名/Desktop/dsym/ips/Test.app.dSYM"
    set outfilePath to " -o /Users/用户名/Desktop/dsym/ips/Result.ips"
    set ipsPath to " -p /Users/用户名/Desktop/dsym/ips/Test.ips"

    set pythonOrderEnd to ";"

    # 第一条命令 进入CrashSymbolicator.py对应的文件夹下执行操作 因为CrashSymbolicator.py关联其它的库也在这个文件夹内
    set order1 to "cd /Applications/Xcode.app/Contents/SharedFrameworks/CoreSymbolicationDT.framework/Versions/A/Resources;"

    # 第二条命令 分析导出ips结果文件
    set order2 to pythonOrderStart & dSYMPath & outfilePath & ipsPath & pythonOrderEnd

    # 第三条命令 打开分析的结果文件
    set order3 to "open Result.ips"

    # 拼接多条命令
    set order to order1 & order2 & order3

    #多条命令执行用;分割
    do script order

end tell
iOS 使用dsym符号化线上crash日志(ips文件) 符号化ios crash日志 阅读详情

相关推荐

dSYM文件分析

dSYM 文件 什么是 dSYM 文件 Xcode编译项目后,我们会看到一个同名的 dSYM 文件,dSYM 是保存 16 进制函数地址映射信息的中转文件,我们调试的 symbols 都会包含在这个文件中, 并且每次编译项目的时候都会生成一个新的 dSYM 文件,位于 /Users/beyond/Library/Developer/Xcode/Archives 目录下, 对

pre_eminent的JAVA学习园地 2025

dSYM文件是什么 ?

dSYM的全称是, 所以dSYM文件就是, dSYM文件中的每个 debug symbol, 对应了一个关系, 这个关系一端是源代码里真实的符号(类名称、全局变量以及方法和函数名称), 另一端则是其定义的文件号和行号.

侯仕奇的博客 3784

iOS Crash文件获取及符号化

Crash文件获取 大致可以分为两种方式:远程获取和本地获取;具体可以分为如下四种途径 1.1. 远程获取;已经上传到iTunes Connect的应用,可以通过iTunes Connect的App分析查看App崩溃情况不会有崩溃日志,如果是TestFlight测试,则可以在iTunes Connect获取到崩溃日志 1.2. 远程获取;通过Xcode菜单Window -> Orga...

gsl111000的博客 1957

dSYM的简单介绍

通过http://www.cocoachina.com/ios/20100427/1222.html 这篇文章,结合自己日常工作的理解,提炼了一下主要内容一、dsym是什么?在XCODE编译项目之后,会在app旁看见一个同名的dSYM文件.(rd称之为 符号文件)他是一个编译的中转文件,简单说就是debug的symbols包含在这个文件中.二、dsym有什么作用?当release的版本 crash...

silencewy_l的博客 9418

TestFlight崩溃分析全指南:从ips文件获取到dsym符号化完整流程(2024最新版)

本文详细介绍了2024年最新的TestFlight崩溃分析全流程,从获取ips文件到使用dsym进行符号化。涵盖了iOS崩溃日志的预处理、dSYM文件的精准匹配、现代符号化工具链配置以及高级调试技巧,帮助开发者快速定位和解决崩溃问题,提升应用稳定性。

weixin_30335575的博客 498

iOS小技能: ips 文件的分析

iOS15符号化换新工具了, iOS 15 的crash 文件改了格式, 用 Xcode 13 的 symbolicatecrash 也无法解析了,可使用脚本将新格式转换为之前的格式,再丢进去 symbolicate。dSYM 文件里存储了函数地址映射,这样调用栈里的地址可以通过 dSYM 这个映射表能够获得具体函数的位置。3)“右键——>Show in Finder” “右键——>显示包内容” aaa3ffdf-16ce-3065-bcba-293f7aee7c9b.dSYM.zip。

专注于计算机研发知识和资讯分享 2730

iOS崩溃分析:dSYM、crash与ips文件符号化实战指南

在iOS开发中,崩溃日志是排查线上问题的关键线索,但原始日志往往只是一堆十六进制地址,难以直接定位代码位置。这背后的核心概念是符号表与地址空间布局随机化(ASLR):编译器将源码转换为机器码后,函数名和行号被单独存放在dSYM文件中,而系统每次启动App时都会随机化加载基地址,导致崩溃地址必须结合dSYM和加载偏移量才能还原。理解这一原理,对于高效使用crash日志解析工具至关重要。无论是从设备导出的.ips文件,还是通过Xcode Organizer、symbolicatecrash脚本或atos命令进行

weixin_31102231的博客 121

LeRobot SO100仿真操控避坑指南:从MuJoCo模型调试到实机同步(附参数修正模板)

本文详细解析了LeRobot SO100机械臂在MuJoCo仿真操控中的常见问题与解决方案,包括关节转向符号调试、偏移值校准及实机同步技术。通过实战案例和参数修正模板,帮助开发者高效解决仿真与实机差异,提升机器人开发效率。

weixin_29064009的博客 246

iOS crash报告符号化,.ips文件分析

项目中一部分测试是外包的,测试人员发现了一个偶现的bug,并把.ips文件提供给我们。 下面开始解析crash文件 1.在桌面新建一个文件夹,名字叫crash 2.将.ips文件更名为.crash文件并放到crash文件夹中 3.前往文件夹路径  /应用程序/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versio

breeze的博客 6179

混合开关电容DCDC变换器技术解析与工程应用指南

在电源设计领域,传统DCDC变换器在高降压比或高升压比场景下,往往面临占空比过窄、开关应力大、效率偏低等瓶颈。开关电容变换器虽能实现固定比例的电压变换,却受限于调节能力。混合开关电容DCDC变换器通过“开关电容网络粗调变比+电感式DCDC细调输出”的策略,兼顾高效率、高功率密度与宽调压范围。本文梳理了其典型拓扑(如2:1/4:1 SC+Buck)、关键对比、控制策略(含软充电)及工程应用中的常见问题,帮助电源工程师在服务器供电、快充、车载电源等场景下快速选型与调试。

weixin_29164185的博客 312

powerdesigner导出sql将name放到comment注释上

【代码】powerdesigner导出sql将name放到comment注释上。

weixin_45947759的博客 1352

MacSymbolicator终极指南:3步完成iOS/macOS崩溃报告符号化

作为iOS或macOS开发者,你是否曾经面对过一堆难以解读的十六进制内存地址,苦苦思索着崩溃究竟发生在哪一行代码?MacSymbolicator正是为你解决这一痛点的终极工具!这款免费的开源应用能够将晦涩难懂的崩溃报告转化为清晰可读的代码位置信息,让调试工作变得简单高效。无论你是新手开发者还是经验丰富的工程师,这款工具都能帮助你快速定位应用崩溃的根本原因,显著提升问题解决效率。🎯 ## 项目概

gitblog_00330的博客 512

KNX实战—ETS5_智能开关从零到一的配置全流程

本文详细介绍了使用ETS5软件配置KNX智能开关的完整流程。从创建项目、构建建筑结构,到导入产品数据库、添加并配置开关模块与智能面板,再到设置延时开关、闪烁报警等进阶功能,并深入解析了群组地址的配置与链接方法。最后指导完成项目校验与程序下载,帮助用户实现从零到一的智能灯光基础控制功能配置。

joy55的博客 540

Apple 平台 .NET 崩溃日志符号化实战:apple-crash-symbolication 技能的设计演进与自动化实现

`.ips` 崩溃日志(iOS 15+ / macOS 12+ 的 JSON 格式)中的原生回溯往往只包含 `libcoreclr.dylib`、`libmonosgen-2.0` 这类二进制镜像名与裸地址,无法直接定位到 .NET 运行时源码。`plugins/dotnet-diag` 插件中的 `apple-crash-symbolication` 技能正是为解决这一问题而生:它解析 .ips

gitblog_00437的博客 959

基于SpringBoot 3 + Vue 3的全栈民宿预约管理系统设计与实现

文章将详细阐述系统的需求分析、架构设计、数据库设计、核心功能模块的实现(包括用户认证、房源管理、订单流程、支付集成等),并提供关键代码片段,最后对系统进行总结与展望。.requestMatchers("/api/admin/**").hasRole("ADMIN") // 管理员接口。.requestMatchers("/api/auth/**").permitAll() // 认证接口公开。.requestMatchers("/api/public/**").permitAll() // 公开资源。

2201_76125393的博客 272

通过电源模块降低电源噪声的3种方法

电源噪声是一种常见且不受欢迎的电气现象。如果不降低噪声,其会对敏感的医疗、测试测量、航空航天和国防系统的应用性能产生不利影响。当今的高精度模拟信号链系统需要直流/直流开关稳压器产生稳压电源轨,为低噪声应用中的模数转换器(ADC)、数模转换器(DAC)、现场可编程门阵列(FPGA)及其子系统供电。尽管直流/直流开关稳压器具有高工作效率,它们的开关操作会导致较大的不连续电流,从而产生较高的输入和输出电压纹波、频率尖峰和宽带噪声。

qq_43416206的博客 1424

iOS crash dSYM

前段时间,项目重构完成,模块添加完毕,然后欣喜的准备上线。然后。就出现了下图的情景。 app只支持iPhone,不支持iPad,然后,悲剧原因都会有一个2.10 iPhone Apps must also run on iPad without modification, at iPhone resolution, and at 2X iPhone 3GS re

wwwwwwwwwwwwdi的博客 7561

汽车标定技术(五)--基于模型开发如何生成完整的A2L文件(1)

A2L文件的生成分为两章讲解:本文主要是讲模型开发,讲解如何把标定量、观测量放到链接文件中的指定位置。下一篇讲解如何使用matlab生成完整的A2L文件

认真搞搞汽车MCU 4617

iOS之解析ips文件

iOS之解析ips文件导出ips文件dSYM配合symbolicatecrash配合执行解析 导出ips文件 途径一: 手机连接Xcode查看和导出 Xcode -> Window -> Devices and Simulators -> View Device Logs 途径二: 直接在手机上导出,设置-分析-分析数据-找出对应时间点的crash文件 dSYM配合 .dSYM ...

TalonSop的博客 4037

SpringBoot 教程:SpringBoot多种方式实现静态Html页面跳转

本教程介绍了 Spring Boot 中实现静态 Html 页面跳转的常用方法,包括重定向跳转、直接返回 ModelAndView 对象以及使用 Thymeleaf 模板引擎。如果你的项目中使用了 Thymeleaf 模板引擎,那么可以利用它来实现静态页面的跳转。对于静态的 Html 页面,我们可以使用多种方式来实现跳转功能。重定向是一种常见的页面跳转方式,它通过发送 HTTP 重定向响应头来告知浏览器跳转到指定的页面。在 Spring Boot 中,我们可以将视图名称设置为静态页面的路径。

2301_79325657的博客 2448

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

如何使用dSYM文件来符号化崩溃信息

iOS崩溃日志符号化摘要:本文介绍了如何将不可读的崩溃堆栈信息转换为可读格式。主要内容包括:1)符号化必要性,原始崩溃日志难以定位问题;2)获取dSYM文件的方法,包括调试环境配置和从ipa包提取;3)手动分析.crash文件,展示了崩溃日志结构。通过dSYM文件中的地址映射关系,可将十六进制地址转换为具体的函数名和行号,帮助开发者快速定位崩溃原因。文中详细说明了Xcode配置、命令行工具使用及日志分析方法。

chaoyuan899的专栏 1071

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

iOS Crash收集与分析详解(基础篇)

前言: 最近测试妹子老是抱怨我偶现的Bug不好复现,我这边出于偷懒(其实是工作很忙)一直再说不能复现Bug的妹子不是好测试,最近闲下来了,正好谈谈Crash的收集和分析。 一、Crash收集 噔噔噔噔~万能的官方文档又出现了,先上地址Understanding and Analyzing Application Crash Reports Crash收集与解析流程图 通过上图我们可以发现Crash的收集主要有两种方式。 1、使用Xcode从设备获取崩溃日志: 如果你把你的手机连接到Mac

feelinghappy的专栏 2729

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

测试开发-iOS真机Crash Log 的获取和分析

本文主要介绍iPhone的crash log获取方式和log的符号化处理,通过符号化流程可封装成脚本,稳定测试monkey中可直接对捕获的crash log进行解析

Try My Best! 2322

iOS 解析.IPS崩溃文件

iOS崩溃日志ips文件解析 iOS崩溃日志ips文件解析 一 简介   测试组的同事在进行稳定性测试时,通常会遇到一些崩溃,然后他们会将这些崩溃日志(一般是ips格式的文件)反馈给开发进行分析,但是这些ips文件中的内容通常是如下图这样的,都是一些十六进制的堆栈地址,如果仅仅根据这些堆栈地址,我们基本无法做任何事情,连最基本的崩溃定位都做不到。那么,在iOS开发中,还有一些其他的方法可以...

qq_30754211的博客 2162

iOS .crash 或 .ips 日志符号化

iOS .crash 或 .ips 日志符号化 准备文件 symbolicatecrash .dSYM 奔溃文件(.crash或.ips) 日志符号化的过程: 先新建个文件夹,假设文件夹A 1、找 symbolicatecrash 文件,在终端输入命令查找 find /Applications/Xcode.app -name symbolicatecrash -type f 选择下面文件放到文件夹A中 /Applications/Xcode.app/Contents/SharedFrameworks/

Ashimar_ZHZ的博客 1435

如何分析 iOS 中的 Crash logs

当你收到不可读的崩溃信息时,你可以在 Xcode 的帮助下对崩溃日志进行符号化。作为开发者,识别符号并确保能够修复这个崩溃至关重要。我们很多开发者常用一些在线平台来统计和解决崩溃,比如 Firebase 和 Bugly 平台,它们将上报我们的线上崩溃信息日志。但是,在某些情况下,我们可以从控制台提取对应的崩溃文件,比如 IPS 文件,在读取这些日志之前,需要对符号进行符号化。今天就来讲讲相关的内容。

Rey的技术博客 1099
上一篇: 使用定位CLLocationManager时,设置了代理,但是不走代理方法
下一篇: Xcode14 pod 报错 FrozenError RuntimeError
liangyi_csdn
博客等级 码龄12年 26粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值