Реактивный модуль iOS Bridging в Swift - PullRequest
0 голосов
/ 05 мая 2019

Я хотел бы создать собственный модуль, чтобы использовать его в моем проекте. Особенность в том, что я хочу использовать язык Swift.

Итак, я создал новый проект RN, используя команду act-native init .

Вот мои зависимости пакетов:

  • RN (0,59,5)
  • Реакция (16.8.3)

Я создал каталог внутри моего node_modules каталога под названием response-native-hello-world, чтобы 1) обучиться на простом примере 2) подделать мой будущий пакет Npm.

Внутри этого каталога я создал свой HelloWorld.xcodeproj.

-- nodes_modules
   -- react-native-hello-world
      -- ios/
         -- HelloWorld/
            -- HelloWorld.xcodeproj
            -- HelloWorld/
               -- HelloWorld.swift
               -- HelloWorld-Bridging-Header.h

Как я уже говорил, я хочу создать этот модуль с помощью Swift. Поэтому я использовал XCode для создания файла заголовка моста, как говорится в документации RN.

Вот когда начались мои проблемы ... Когда я добавляю

#import <React/RCTBridgeModule.h>

В моем файле HelloWorld-Bridging-Header.h происходит ошибка и говорится файл 'React / RCTBridgeModule.h' не найден .

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

Я даже добавил в путь поиска заголовка моей цели файлы .ht React.

$(SRCROOT)/../../../react-native/React  //recursive

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

Может ли кто-нибудь сказать мне, если я допустил ошибку или уже успел сказать мне, как это сделать?

Некоторая помощь будет очень признательна,

Спасибо :)

1 Ответ

1 голос
/ 06 мая 2019

Если у вас есть только равноправные зависимости и попробуйте открыть HelloWorld.xcodeproj (насколько я понимаю, это ваш модуль), он не будет работать, потому что у вас нет node_modules вВаша папка custom_module.

  1. a) Добавлен этот модуль в ваш основной проект package.json

    "dependencies": {"Reaction-native-hello-world": "file: custom_modules / RNHelloWorld", ...}

  2. npm install

  3. Откройте PROJECT_NAME / ios / PROJECT_NAME.xcodeproj

  4. Как вы можете видеть, ваш RNHelloWorld добавлен в ваши Библиотеки

  5. Вы можете начать работу со своим пользовательским модулем здесь, и ошибка с RCTBridgeModule исчезнет, ​​потому что у вас есть libReact.a в вашей библиотеке ссылок с бинарными файлами

...