测试拿着IOS手机过来说这里有个问题,能看看日志吗?
Android上连上logcat可以很方便看日志,但是IOS就没办法。几年前我写过一篇文章通过写日志的方式保存在本地
http://www.xuanyusong.com/archives/2477
后来ios把这个功能封了,无法用第三方工具把日志取出来,很奇怪的是有的手机可以有的手机又不行。还有个办法就是打开xcode,window->device and Simulators 然后选择你的app 下载下来也可以查看里面的日志文件。
最近我又发现了一个新方法,就是使用nslog来打日志,这样打的日志会发到控制台中, mac下 实用工具-》控制台-》
如图所示,只要是nslog打出来的日志,都可以直接在控制台中收到。这样就可以解决(测试拿着IOS手机过来说这里有个问题,能看看日志吗)的问题了 呵呵。
然而unity的debug.log并不是走的nslog,我大概查了一下nslog效率不高,就是因为要给控制台发送日志,所以一般情况下最好不要用。
1.在Unity工程中Assets/Plugins/IOS/目录下写入代码 NativePlugin.mm
1 2 3 4 5 6 7 |
extern "C" { void Log(const char* log) { NSLog(@"Log:%s",log); } } |
2.在需要打log的地方写入(因为是测试代码所以我就放在了Application.logmessageRceived里,最好不要放在这里)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Runtime.InteropServices; public class NewBehaviourScript : MonoBehaviour { [DllImport("__Internal")] private static extern void Log(string a); void Awake() { Application.logMessageReceived += delegate(string condition, string stackTrace, LogType type) { Log(condition); }; } void Start () { for (int i = 0; i < 10; i++) { Debug.Log ("不要xcode我也要能看日志"); } } } |
总结:
1.代码中可是做一个开关,需要查看日志的时候打开这个开关,重要的日志都走nslog,否则debug.log
2.尤其sdk相关的代码,因为编辑器下不调好测试,必须真机调试。查看日志就很关键了。
3.lua的一些error报错,并不会引起闪退的错误日志
4.欢迎一起讨论。
- 本文固定链接: https://www.xuanyusong.com/archives/4469
- 转载请注明: 雨松MOMO 于 雨松MOMO程序研究院 发表
捐 赠写博客不易,如果您想请我喝一杯星巴克的话?就进来看吧!