У меня есть собственный компонент реагирования, написанный на Swift, и я хочу извлечь его в качестве фреймворка, чтобы другие проекты/люди могли легко его использовать.
Сначала я создал новый проект для iOS Foo
, добавил цель фреймворка,
затем добавил исходные файлы. Наконец-то я его построил.
Не удалось, потому что:
Bar.swift: [lineNumber]: использование неразрешенного идентификатора 'RCTConvert' RNBarManager.swift: [lineNUmber]: использование необъявленного типа 'RCTViewManager'
Попытка 1:
Я запустил react-native link
, но ничего не изменилось.
Попытка 2:
- Перетащите
React.xcodeproj
в проектFoo
и добавьтеlibReact.a
вLink Binary With Libraries
. - Добавьте
$(SRCROOT)/../node_modules/react-native/React
кHeader Search Paths
.
Но это не работает. Ошибка все еще остается.
Попытка 3:
Я подумал, может быть, Swift не распознает эти файлы.
Поэтому я добавил Foo-Bridging-Headers.h
, как сделал это в приложении React-Native, которое содержит следующий код:
#import "React/RCTBridge.h"
#import "React/RCTViewManager.h"
#import "React/RCTUIManager.h"
#import "React/UIView+React.h"
#import "React/RCTBridgeModule.h"
Я также добавил Foo-Bridging-Headers.h
в Build Settings->Swift Compiler - General->Object-C Bridging Header
,
Тем не менее я получил ошибку.
использование мостовых заголовков с целевыми объектами не поддерживается
Кажется, здесь не разрешены соединительные заголовки.
Попытка 4:
Я пытался добавить этот импорт в Foo.h
,
но снова получил ошибку.
Foo.h: 21: 9: включение немодульного заголовка в модуль фреймворка 'Foo'