如何使用Swift

时间:2017-03-03 04:21:30

标签: swift react-native

我有一个用Swift编写的本机组件,我希望将其作为一个框架提取出来,以便其他项目/人员可以轻松使用它。

首先我创建了一个新的iOS项目Foo,添加了一个框架目标, 然后添加了源文件。最后,我建立了它。

失败是因为:

  

Bar.swift:[lineNumber]:使用未解析的标识符' RCTConvert'       RNBarManager.swift:[lineNUmber]:使用未声明的类型' RCTViewManager'

尝试1:

我跑了react-native link,但没有改变。

尝试2:

  1. React.xcodeproj拖至Foo项目,并将libReact.a添加到Link Binary With Libraries
  2. $(SRCROOT)/../node_modules/react-native/React添加到Header Search Paths
  3. 但它不起作用。错误仍然存​​在。

    尝试3:

    我在想,也许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

    我还是错了。

      

    不支持使用带有框架目标的桥接头

    这里似乎不允许桥接标题。

    尝试4:

    我尝试将这些导入添加到Foo.h

    但又出现了错误。

      

    Foo.h:21:9:在框架模块中包含非模块化标题' Foo'

    如何成功编译?

2 个答案:

答案 0 :(得分:1)

这似乎是将React链接到您的项目所需的可可豆荚的问题。

尝试使用终端在项目目录中运行pod install,然后尝试构建。

答案 1 :(得分:0)

链接发生在托管应用程序中,而不是在您创建的框架中。这只需要标题。