美文网首页
iOS混编项目集成React Native

iOS混编项目集成React Native

作者: karven | 来源:发表于2018-06-29 15:38 被阅读0次

    项目背景:Objective-C与Swift3.3混合编译,采用cocoapods进行管理

    1. Podfile文件


      Podfile
    2. fishhook.h file not found


      RCTReconnectingWebSocket.h中问题

      首先:把#import "fishhook.h"改成#import <React/fishhook.h>,
      然后进行pod update,如果还存在编译异常,在进行
      修改package.json,


      package.json文件
      "postinstall": "sed -i '' 's#import <RCTAnimation\\/RCTValueAnimatedNode.h>/#import <React\\/RCTValueAnimatedNode.h>/' ./node_modules/react-native/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.h; sed -i '' 's/#import <fishhook\\/fishhook.h>/#import <React\\/fishhook.h>/' ./node_modules/react-native/Libraries/WebSocket/RCTReconnectingWebSocket.m"
      
    3. Yoga-internal.h中异常


      Yoga-internal.h与RCTConvert.h
      修改 yoga.podspec文件
      修改yoga.podspec后文件
      spec.public_header_files = 'yoga/Yoga.h', 'yoga/YGEnums.h', 'yoga/YGMacros.h'
      

    暂时就遇到上述一些问题,成功之后进行的记录,可能还有遗漏,请见谅

    [2018-07-04更新]

    4.在项目完成初始化后,开始编写代码的过程中又遇到了其他的问题,由于是混编所以在桥接文件中需要引入


    引入文件

    问题如下:


    Duplicate interface definition for class "***"

    按照官方的操作方式不一定可行(本人新建一个混编工程,就可以这样使用,没有问题)


    Exporting Swift
    解决方法:
    创建分类 TestManager+External.h TestManager+External.m

    这样就搞定了,RN调用本地的方法,愉快地玩耍。。。

    参考链接:https://github.com/facebook/react-native/issues/16414
    https://github.com/facebook/react-native/issues/10428

    相关文章

      网友评论

          本文标题:iOS混编项目集成React Native

          本文链接:https://www.haomeiwen.com/subject/xejayftx.html