Некоторые проблемы при построении моста для реакции нативной на вызов функции swift

Я знаю, что для вызова функции Swift из React Native придется строить мост с помощью OC. Вот что я делаю.

У меня есть библиотека под названием "RNUtility".

RNUtility-Bridging-Header.h // Заголовок моста

#if __has_include("RCTBridgeModule.h")
#import "RCTBridgeModule.h"
#else
#import <React/RCTBridgeModule.h>
#endif

RNUtility.m // OC Bridge

#if __has_include("RCTBridgeModule.h")
#import "RCTBridgeModule.h"
#else
#import <React/RCTBridgeModule.h>
#endif
#import <Foundation/Foundation.h>

//For what I know, the following lines expose RNUtility swift to React Native with another name RNU
@interface RCT_EXTERN_REMAP_MODULE(RNU, RNUtility, NSObject)

//The following should expose the testSwift method in RNUtility Swift
RCT_EXTERN_METHOD(testSwift: (RCTPromiseResolveBlock)resolve rejecter: (RCTPromiseRejectBlock)reject)
@end

RNUtility.swift

import Foundation

@objc(RNFunction)
class RNFunction: NSObject {

  @objc //I already added the _
  func testSwift(_ resolve: RCTPromiseResolveBlock, rejecter reject: RCTPromiseRejectBlock) -> Void  {
    resolve("yes")
  }
}

App.js

...
import RNU from 'react-native-ultility'
...

export default class App extends Component<Props> {
  render() {
    const name = RNU.testSwift();
    return (
      <View style={styles.container}>
        <Text>{name}</Text>
      </View>
    );
  }
}
...

Но я получил эту ошибку:

ld: library not found for -lswiftSwiftOnoneSupport for architecture arm64

Я не знаю, правильный ли мой код, но я должен сначала решить эту ошибку.

0 ответов

Другие вопросы по тегам