解决移动sdk问题可能很困难。你需要从你的开发团队获得大量的前置信息来解决问题,而移动开发的本质引入了许多变量,这使得诊断问题变得更加困难。为了使此过程更顺利,以下是一些信息,可以帮助我们的客户支持团队有效地为您提供帮助。

请注意:我们不支持在包装器中实现我们的任何移动SDK。

包含尽可能多的基本SDK信息

资料应包括:

SDK版本

这对于我们的客户支持团队和开发人员确定问题范围是必要的。如果问题是在升级到最新版本后开始的,请包含该信息。我们的SDK文档包括每个产品的发布说明以及最新版本的持续已知问题。我们建议检查它们,看看您遇到的问题是否列在那里。

操作系统版本

通常情况下,问题仅限于特定的Android/iOS版本。请包括您正在测试的操作系统版本。

记录器的结果

我们的sdk文档的每个部分在“调试”或“高级主题”下都有一个代码片段,可以添加到您的项目中以启用详细日志记录。在重现问题时启用它,并在提交票据时提供任何相关日志。查看下面的片段链接:

iOS

安卓

录音或截图

任何问题的记录都有很大的帮助,可以很好地补充日志,并简化问题的解释。

依赖关系

如果问题提到一个库或SDK依赖项之一,请参考我们的SDK中使用的依赖项列表。使用高于文档版本的版本可能会导致意想不到的结果。

初始化代码

包含初始化代码来查看如何以及何时启动SDK几乎总是有帮助的。如果你有多个SDK设置,这将帮助我们知道你在使用哪个。

任何与问题相关的代码。例如,如果在加载文章时出现问题,则包含调用SDK文章方法的函数。

时间轴

这期什么时候开始的?这一直是个问题吗?包括行为改变的日期。还要包括问题是否与任何代码更改同时发生,例如升级到Zendesk SDK的新版本、其他依赖关系或更改代码。亚博

再现的步骤和发生的模式

如果您能够重现问题,最好是在我们的演示应用程序(见下文),请在门票中列出它们。以同样的方式,如果问题不是在所有情况下都发生,但您可以确定这些情况下的模式,请将此信息添加到对话中。

在我们的演示应用程序中重现该问题

有最新的演示应用程序回购支持,聊天和回答机器人sdk。如果遇到崩溃、UI显示问题、身份验证问题或数据或功能缺失(如文章未出现或触发器未触发)等问题,请先查看是否可以在相应的演示应用程序中重现该问题。这将减少应用程序特有的变量,并消除可能的依赖冲突。

iOS演示手机应用

https://github.com/亚博zendesk/ios_sdk_demo_apps(支援、答疑机器人及聊天)

Android演示手机应用

https://github.com/亚博zendesk/android_sdk_demo_apps(有支持模块,回答机器人和聊天)

如果你可以在演示应用程序中重现问题,概述你这样做的步骤,提到你添加或修改的任何代码来重现问题,并向我们发送演示应用程序根文件夹的zip。

如果你不能在演示应用程序中重现这个问题,试着创建一个小的示例应用程序来演示这个问题。有关详细信息,请参阅下一个指导方针。

创建一个示例应用程序来说明这个问题

如果无法在示例应用程序中重现问题,请提供一个示例应用程序,其中包含尽可能少的代码来重现问题。例如,如果与另一个依赖项发生冲突,则剥离应用程序的所有内容,除了SDK、另一个依赖项以及演示问题所需的任何代码或UI。您可以在应用程序中使用测试数据或测试Zendesk用户来复制亚博用例并删除任何业务逻辑,以便只保留与Zendesk问题相关的相关部分。

重要的:由于自定义开发工作的性质,Zendesk客户支持和工程团队不排除故障和调试生产应用程序。亚博要有效地诊断问题,将涉及许多变量。我们需要以孤立的方式演示问题的示例应用程序。

高级崩溃报告符号

dSYM文件

当Xcode将你的源代码编译成机器码时,它会在你的应用中生成一个符号列表(例如:类名、全局变量、方法和函数名)。这些符号对应于定义它们的文件号和行号,这样的关联创建了一个调试符号。

在发布模式下构建应用程序时,调试符号被放置在调试符号文件(dSYM)中。

dSYM文件对于将崩溃报告符号化和将堆栈回溯解码为更可读的格式非常有用。

如何使用与Zendesk sdk相关的dSYM文件亚博

亚博Zendesk SDK库是作为框架发布的,所有相关的dSYM文件都可以在SDK文件夹的根目录中找到,在. dsyms文件夹中。

例如,可以找到Chat SDK dSYM文件夹在这里

如果你遇到一个SDK的问题,你可以使用它相关的dSYM文件,并将它们上传到你用于崩溃报告的崩溃平台(即:Crashlytics)。