我有一个用Swift编写的本机组件,我希望将其作为一个框架提取出来,以便其他项目/人员可以轻松使用它。
首先我创建了一个新的iOS项目Foo
,添加了一个框架目标,
然后添加了源文件。最后,我建立了它。
失败是因为:
Bar.swift:[lineNumber]:使用未解析的标识符' RCTConvert' RNBarManager.swift:[lineNUmber]:使用未声明的类型' RCTViewManager'
我跑了react-native link
,但没有改变。
React.xcodeproj
拖至Foo
项目,并将libReact.a
添加到Link
Binary With Libraries
。$(SRCROOT)/../node_modules/react-native/React
添加到Header Search Paths
。但它不起作用。错误仍然存在。
我在想,也许Swift不会识别这些文件。
所以我在React-Native App中添加了Foo-Bridging-Headers.h
,其中包含以下代码:
#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
,
我还是错了。
不支持使用带有框架目标的桥接头
这里似乎不允许桥接标题。
我尝试将这些导入添加到Foo.h
,
但又出现了错误。
Foo.h:21:9:在框架模块中包含非模块化标题' Foo'
答案 0 :(得分:1)
这似乎是将React链接到您的项目所需的可可豆荚的问题。
尝试使用终端在项目目录中运行pod install
,然后尝试构建。
答案 1 :(得分:0)
链接发生在托管应用程序中,而不是在您创建的框架中。这只需要标题。