首页 > 解决方案 > 归档发布时,通过桥接头暴露的 Objective-c 类在 swift 中不可见

问题描述

在我的 react native 项目中,我尝试向 javascript 代码公开一个 swift 函数。它在调试模式下运行良好,但在尝试归档时Use of undeclared type RCTEventEmitter,我的 swift 文件出现错误。

RCTEventEmitter导入我的RNUtils.m文件和桥接头中。

所以我猜在存档的某个地方,桥接头失败了,但我不知道在哪里。如果我要求一个不存在的导入,它会告诉我它无法编译桥接头,因此在构建过程中会考虑该文件。

// Utils.m
#import "React/RCTBridgeModule.h"
#import "React/RCTConvert.h"
#import "React/RCTEventEmitter.h"

@interface RCT_EXTERN_REMAP_MODULE(RNUtils, RNUtils, RCTEventEmitter)

@end

// Utils.swift
import Foundation

@objc(RNUtils)
class RNUtils: RCTEventEmitter {
  // my native code emitting events
}
// MyApp-Bridging-header.h
#ifndef MyApp_Bridging_Header_h
#define MyApp_Bridging_Header_h

#import <React/RCTBridgeModule.h>
#import <React/RCTEventEmitter.h>

#endif

标签: iosswiftreact-native

解决方案


看来我需要在每个 swift 文件中添加“导入反应”。现在存档就好了。


推荐阅读