MonoTouch,NSLog和TestFlightSdk

ang*_*son 5 nslog xamarin.ios testflight

我正在尝试将TestFlightSdk集成到我使用MonoTouch制作的应用程序中.

我试图在我的应用程序中实现日志记录,以便它被TestFlightSdk拾取.它应该NSLog自动获取ged文本,但我似乎无法找到正确的代码组合添加到我自己的应用程序,用C#/ MonoTouch编写,也是如此.

我尝试过的:

  1. Console.WriteLine("...");
  2. Debug.WriteLine("...");(但我想这只是打电话Console.WriteLine)
  3. 实现支持NSlog,但这使我的应用程序崩溃,显然我做错了(我会问一个新的问题,如果这是前进的方式.)

MonoTouch中是否有内置的东西可以通过NSLog写入日志消息,以便我可以将它与TestFlightSdk一起使用?或者我必须为NSLog滚动自己的包装器?

为了自己实现NSLog,我添加了这个:

public static class Logger
{
    [DllImport("/System/Library/Frameworks/Foundation.framework/Foundation")]
    private extern static void NSLog(string format, string arg1);

    public static void Log(string message)
    {
        NSLog("%s", message);
    }
}
Run Code Online (Sandbox Code Playgroud)

(我从其他SO问题得到了上面的代码片段:如何绑定到iOS基础功能NSLog.)

但这会导致我的应用程序出现SIGSEGV故障.

Anu*_*nuj 8

using System;
using System.Runtime.InteropServices;
using Foundation;

public class Logger
{
    [DllImport(ObjCRuntime.Constants.FoundationLibrary)]
    private extern static void NSLog(IntPtr message);

    public static void Log(string msg, params object[] args)
    {
        using (var nss = new NSString (string.Format (msg, args))) {
            NSLog(nss.Handle);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)