ios - 归档发布时,通过桥接头暴露的 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
- 反应原生 0.61.5
- 代码 11.5
- 斯威夫特 5
解决方案
看来我需要在每个 swift 文件中添加“导入反应”。现在存档就好了。
推荐阅读
- azure - 无法运行 Arm 模板来重新部署资源
- android - 如何使用 Flavor ConfigField 覆盖 Release 中的 ConfigField 变量?
- vuejs3 - VueJS 的多选组件
- javascript - 将来自后端的日期与 javascript 时间进行比较
- flutter - 更新 UI 时出错,setState() 无法正常工作
- arrays - 具有多个自动生成的 importxml 查询的列表
- javascript - React Native Paper ProgressBar 不可见
- r - 如何在R中的函数中打印变量名
- python - 在 pandas 中使用 if-condition 填充 pandas 中的 na 值
- python - 减少 pandas groupby 函数的内存占用