xamarin.ios - MonoTouch,NSLog和TestFlightSdk

标签 xamarin.ios nslog testflight

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

我试图以一种由TestFlightSdk获取的方式在我的应用程序中实现日志记录。据称它会自动获取NSLog ged文本,但是我似乎找不到正确的代码组合来添加到用C#/MonoTouch编写的自己的应用程序中,这样做是一样的。

我尝试过的

  • Console.WriteLine("...");
  • Debug.WriteLine("...");(但是我认为这只是调用Console.WriteLine)
  • 实现对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);
        }
    }
    

    (我从另一个SO问题How to I bind to the iOS Foundations function NSLog中获得了上面的代码段。)

    但这会使我的应用程序崩溃,并出现SIGSEGV错误。

    最佳答案

    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);
            }
        }
    }
    

    关于xamarin.ios - MonoTouch,NSLog和TestFlightSdk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9204160/

    相关文章:

    iOS,TableViewCell,动态更新单元格的高度

    ios - 当我NSLog时,NSUserDefaults不会保存任何内容

    ios - TestFlight 公共(public)链接的兑换代码在哪里?

    ios - 为什么使用 __block 标识符设置属性时应用程序会崩溃

    iphone - 如何在内部分发具有各种内容的 iphone 应用程序?

    android - 如何创建跨平台 Xamarin 移动应用程序项目?

    iOS 10 不打印 NSLogs

    ios - TestFlightapp.com将于2015年2月26日关闭,如果没有应用商店,有没有办法共享应用?

    c# - 在同一个项目中使用不同SDK版本的框架有什么影响?

    objective-c - NSLog - 如果满足条件,则以单数形式写入单词