This篇文章介绍了如何在objective-c中使用Crashlytics日志(log).然而,在完成了在我的项目中正确引用Crashlytics和Fabric的安装步骤之后,我似乎无法使用该方法.

看着那些乱七八糟的人.h文件,我可以看到它是使用编译器标志定义的:

#ifdef DEBUG
#define CLS_LOG(__FORMAT__, ...) CLSNSLog((@"%s line %d $ " __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
#else
#define CLS_LOG(__FORMAT__, ...) CLSLog((@"%s line %d $ " __FORMAT__), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
#endif

根据编译器标志的不同,这个块似乎只是包装了CLSNLogCLSLog个函数.

所以,我想直接找到来源,我试图直接从swift文件中引用CLSLog.还是不走运:

我的桥牌头球.h:

#import <Crashlytics/Crashlytics.h>

日志(log)Swift :

import Foundation
import Fabric
import Crashlytics

func Log(message: String) {
    NSLog("%@", message)
    CLS_LOG("%@", message)
    CLSLog("%@", message)
}

Log函数的最后两行抛出错误Use of unresolved identifier.Crashlytics崩溃报告工作正常,除了日志(log)功能.根据this篇文章,Swift的日志(log)记录支持已经实现.

就版本而言,我运行的是Fabric/Crashlytics的最新版本(本文发布时为12月发布).

(Interesting note, I can see/use 100...)

有人知道在Swift项目中使用CLS_LOG的正确方法吗?

推荐答案

你必须创建一个这样的中间桥梁:

CrashlyticsBridge.h:

#import <Foundation/Foundation.h>

@interface CrashlyticsBridge : NSObject

+ (void)log:(NSString *)message;

@end

CrashlyticsBridge.M

#import "CrashlyticsBridge.h"
#import <Crashlytics/Crashlytics.h>

@implementation CrashlyticsBridge

+ (void)log:(NSString *)message {
    CLS_LOG(@"%@", message);
}

@end

我的桥牌头球.h:

#import "CrashlyticsBridge.h"

然后,您可以简单地将其添加到Log函数中:

func Log(message: String) {
    CrashlyticsBridge.log(message)
}

这将在调试时为您提供Crashlytics日志(log)和NSLogging.

Swift相关问答推荐

SwiftData查询按日期排序的项的属性数组

在SwiftUI中判断选项时避免重复查看

UICollectionViewCompostionalLayout Collectionview单元格宽度在重新加载数据后未正确调整大小

SWIFT`String.Encoding`:`.unicode`vs`.utf16`

在NavigationStack上设置拐角半径:SwiftUI中的无响应内容视图区

Swift图表';chartXVisibleDomain挂起或崩溃

子视图未在父视图 SwiftUI 中触发禁用状态更新

使用 swift 的 Firebase 身份验证

String(validatingUTF8:) 和 String(utf8String:) 之间有区别吗?

在 SwiftUI 中将属性显式设置为其默认值

快速递归:函数与闭包

Swift - 订阅视图之外的绑定值

SwiftUI:当先前的视图列表更改时,NavigationView 详细视图会弹出回栈

Xcode:方法参数的代码完成

如何在 SwiftUI 的 fileImporter 中为 allowedContentTypes 设置 xcodeproj 类型?

What is "SwiftPM.SPMRepositoryError error 5"?

为 UIActivityViewController Swift 设置不同的活动项

Swift - 迭代 struct 对象时如何对其进行变异

显示 UIAlertController 的简单 App Delegate 方法(在 Swift 中)

NSLocationWhenInUseUsageDescription 警告,但我已经添加了