【问题标题】:How I can get correct stack trace at Unity3d (iOS)如何在 Unity3d (iOS) 上获得正确的堆栈跟踪
【发布时间】:2018-05-07 15:20:09
【问题描述】:

我的代码:

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 设备上我没有这个?

这是一个开发版本

【问题讨论】:

  • 试想一下 - 它如何在编译后的版本上工作??
  • 没有办法获取编译构建的数据?
  • 现在有办法在任何地方获取源文件行,但也不支持 iOS il2cpp 文件名,所以不支持,很遗憾不支持。
  • 我不知道他们是怎么做到的,但他们有这个工具的行号:unity3d.com/learn/tutorials/topics/analytics/…

标签: ios unity3d stack-trace


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    • 2014-09-05
    • 2013-02-24
    • 2011-02-19
    • 2022-09-28
    • 2012-03-02
    • 2021-09-28
    相关资源
    最近更新 更多