Open hushicai opened 4 years ago
随便添加一个swift文件,xcode会自动生成对应target的bridging文件,如果有多个target,则会生成多个bridging。
如果只想用同一个bridging,可以修改TARGET -> build settings -> Swift Compiler - General -> Objective-C Bridging Header
。
确保TARGET -> build phases -> Compile Sources
已经加上了该swift文件,构建成功后,xcode会自动生成一个$(SWIFT_MODULE_NAME)-Swift.h
文件。
一定要确保swift文件加进了编译列表,并且项目成功构建,xcode才会生成Swift.h
文件,否则会一直报Swift.h not found
错误,特别是多target的场景,很容易在一个target上添加,而在另外一个target上漏掉了。
自动生成Swift.h
文件后,假设为test-Swift.h
,ojbc引入swift头文件即可以调用swift:
#import "test-Swift.h"
自动生成Bridging-Header.h
文件后,假设为test-Bridging-Header.h
,在该头文件中引入相应的objc头文件,swift即可以调用objc:
/// test-Bridging-Header.h
#import <React/RCTBridgeModule.h>
对于多targets的项目,首先修改
PRODUCT MODULE NAME
为$(PROJECT_NAME)
,路径为project -> TARGET -> build settings -> PRODUCT MODULE NAME
,这样可以多个targets共用Swift.h
文件。