使用AGC Crash服务,创建IOS项目,应用在编译时使用了混淆,会将类名,方法名,方法等混淆后,产生的崩溃包括必须通过上传符号文件才能还原。这里介绍两种IOS符号文件的产生过程和上传方法。
自动上传
- 下载自动上传脚本(链接)
- 在Xcode中配置编译执行脚本
a. 双击Xcode工程,在Xcode工程对应Target的Build Phases中新增Run Script:
![1.png](https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtybbs/150/224/722/0900086000150224722.20210728171611.23550719312105620213974034602878:50530523021921:2800:ABD9D430CE354EAE1DC191C041E9045A59E89303763F5A3C019F316BBE2A10B3.png)
b. 打开下载的脚本中的dsymUploader.sh,复制所有内容,在新增的Run Script Phase中粘贴。记得一定是所有内容,后面有自带的执行脚本。
![2.png](https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtybbs/150/224/722/0900086000150224722.20210728171637.58774718102549696003006793806978:50530523021921:2800:1843DDA322C9BC9FB5EB08485E2FC1AB5BF6757C7F14ED4E2F5708C140AD409E.png)
c. 配置脚本信息
<your_app_id>为App ID,<your_client_id>为Client ID,<your_client_secret> 为Client密钥(要在AGC项目设置页面获取),<your_agcgw_url> 为AGC服务域名,<your_collector_url> 为华为分析服务域名。除了client secret其他值都可以在下载的plist文件获取。
d. 设置如下值为1, 保证Debug模式和模拟器编译都能上传符号表
UPLOAD_DEBUG_SYMBOLS=1
UPLOAD_SIMULATOR_SYMBOLS=1
3. 直接编译,符号文件会自动生成并会自动上传至AGC,如下可以查看到日志显示生成和上传成功:
![3.png](https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtybbs/150/224/722/0900086000150224722.20210728171812.32668870466169929489309814396721:50530523021921:2800:0F214C289C0A7D894C71D2760E8E7B39A84EC06064961548D6FF601969A75BC7.png)
手动上传
- 如果自动上传有问题,还可以手动上传符号文件。首先需要找到生成的符号文件在哪里,可以在Xcode左侧项目目录的“Products”中找到生成的“xxx.app”,右键选择“Show in Finder”,在文件夹中即可找到生成的“xxx.app.dSYM”文件,如下:
![4.png](https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtybbs/150/224/722/0900086000150224722.20210728171831.87554710334976434796446703417036:50530523021921:2800:4B8B1186CC029DA705CBEA7B035B99878B48448E4C9702B963ACEB840188E036.png)
2. 选中对应的“xxx.app.dSYM”文件,右键选择显示包内容,在 Contents/Resources/DWARF/ 目录下可以找到和app同名的 “xxx”文件,压缩“xxx”文件生成“xxx.zip”iOS符号文件。获取符号文件后,登录AGC,进入崩溃页面,选择“upload file”上传即可:
![5.png](https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtybbs/150/224/722/0900086000150224722.20210728171850.80061400715119777528059251791989:50530523021921:2800:57E98877C627DDFEC049D471571B52870315B1E641E9AE2FCE2380A776A02934.png)
3. 上传完可以点击“View upload records”查看上传记录或者删除已上传的文件:
![6.png](https://alliance-communityfile-drcn.dbankcdn.com/FileServer/getFile/cmtybbs/150/224/722/0900086000150224722.20210728171904.08636240441705234082364560895230:50530523021921:2800:58E0390D423D36130C76F9C6ED8B4A4D5EC678D34CECFBB9D779462D7B04739F.png)