Unity3D / XCode:调试日志在设备上不可用,无法在控制台中看到

时间:2014-08-06 20:52:28

标签: ios xcode unity3d xcode5.1

我有一个非常奇怪的问题,我之前在Unity中没有遇到过 - 我无法接听Debug.Log()来自Unity和XCode的NSLog()来电显示我将应用程序构建到设备时控制台。

这是我到目前为止所尝试的内容:

  1. 使用开发构建和脚本调试选项从Unity构建到XCode(尝试使用'Build'和'Build and Run',没有区别)。
  2. 从XCode开始,我尝试使用Product-> Run(CMD + R)进行构建,我的设备通过USB插入。我也尝试过Product-> Archive并手动安装.ipa文件,但都没有。
  3. 插入设备并尝试通过选择我的设备下的“控制台”并使用iPhone配置实用程序从XCode的默认控制台,管理器窗口中检索日志。
  4. 我从我的应用程序获得的唯一输出是Unity在Xcode项目中生成的main.mm文件中的这一行:

    NSLog(@"-> registered mono modules %p\n", &constsection);
    

    我没有看到默认情况下项目中的其他默认日志和打印件,例如UnityAppController.mm中的以下行:

    printf_console("-> applicationDidFinishLaunching()\n");
    

    奇怪的是,我在项目的早期就已经看到了所有这些日志和我自己的日志,但现在我不再这样做了。我已经尝试退回并恢复到早期版本,但我仍然没有看到任何日志。我也尝试构建一个新的XCode项目并将其构建到我的设备上,但也没有运气。

    我可能会遗漏哪些东西?我已经查看了尽可能多的其他主题并尝试了几个建议,但到目前为止还没有找到任何建议。有没有理由我会从Unity收到关于注册单声道模块的第一个调试日志而不是其他模块?我找不到一个很好的理由,它使我在设备上的调试成为一种没有它们的生活痛苦。

    供参考,我使用的是Unity 4.5.1和XCode 5.1.1。

    由于

1 个答案:

答案 0 :(得分:0)

您是否尝试附加到Unity logmessage事件?

public Text logText; // someRandomUnityUITextThatIsShownOnScreen

void Start(){
Application.logMessageReceived += HandleLog;        //can disable logging with Application.logMessageReceived -= HandleLog; 
}



void HandleLog(string logString, string stackTrace, LogType type)
{
  logText.text += "\n | " + logString; 
//of course you can use the logstring and stacktrace to do whatever you want, write into a debug txt file or smth.
}

如果该方法也不起作用,则可能是当前的iOS错误