iOS混编项目集成React Native

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

  1. Podfile文件


    Podfile
  2. fishhook.h file not found


    RCTReconnectingWebSocket.h中问题

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


    package.json文件
    "postinstall": "sed -i '' 's#import /#import /' ./node_modules/react-native/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.h; sed -i '' 's/#import /#import /' ./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)