如何在Unity3d(iOS)中获取正确的堆栈跟踪信息

4

我的代码:

try
    {
        throw new System.ArgumentException("Parameter cannot be null", "original");
    }
    catch (Exception ex)
    {
        string exception = ex.ToString();
    }

但是只有在Unity编辑器中才能正确获取堆栈跟踪。

System.ArgumentException: Parameter cannot be null
Parameter name: original
at MyClassName (System.String message) [0x00026] in /Users/xxx/Documents/xxx/myPackageName/xxx/xxx/xxx/myClassName.cs:104 

设备的堆栈跟踪如下所示:
System.ArgumentException: Parameter cannot be null
Parameter name: original
at MyClassName(System.String message) [0x00000] in <filename unknown>:0 
at UnityEngine.Events.UnityAction.Invoke () [0x00000] in <filename unknown>:0
at UnityEngine.Events.InvokableCallList.Invoke (System.Object[] parameters) [0x00000] in <filename unknown>:0
at UnityEngine.Events.UnityEventBase.Invoke (System.Object[] parameters) [0x00000] in <filename unknown>:0
at UnityEngine.Events.UnityEvent.Invoke () [0x00000] in <filename unknown>:0
at UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) [0x00000] in <filename unknown>:0
at UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1].Invoke (.T1 handler, UnityEngine.EventSystems.BaseEventData eventData) [0x00000] in <filename unknown>:0
at UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.EventFunction`1 functor) [0x00000] in <filename unknown>:0
at UnityEngine.EventSystems.StandaloneInputModule.ProcessTouchPress (UnityEngine.EventSystems.PointerEventData pointerEvent, Boolean pressed, Boolean released) [0x00000] in <filename unknown>:0
at UnityEngine.EventSystems.EventSystem.Update () [0x00000] in <filename unknown>:0 

在Unity编辑器中,为什么我的堆栈跟踪中有文件名和行号,但在iOS设备上却没有呢?
这是一个开发版本。

想一想 - 它如何在编译后的构建中工作? - Jerry Switalski
无法获取已编译构建的数据吗? - Katya
很遗憾,目前无法获取源文件行(任何地方都不行),而且iOS的il2cpp文件名也不受支持。 - Jerry Switalski
我不知道他们是如何做到的,但他们通过这个工具拥有了行号:https://unity3d.com/learn/tutorials/topics/analytics/getting-started-game-performance-reporting - JeanLuc
2个回答

0

0
在Unity中制作iOS版本时,在构建对话框中检查“开发生成”。同时,在下拉菜单中选择“以Debug模式在Xcode中运行”。在构建设置中,关闭“剥离符号”复选框。
这将包含生成过程中的符号,并允许报告文件名和行号。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接