如何在Unity3d(iOS)上获得正确的堆栈跟踪

时间:2016-09-01 14:57:56

标签: ios unity3d stack-trace

我的代码:

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编辑器中我在stacktrace上有文件名和行号,但是在这个iOS设备上我还没有这个?

它是一个开发构建

1 个答案:

答案 0 :(得分:0)

在Unity中进行ios构建时,请在构建对话框中检查开发构建。此外,在下拉列表中,选择Run in Xcode as Debug。在构建设置中,关闭条带符号复选框。

这将包括构建中的符号,并允许报告文件名和行号。

相关问题