美文网首页React-Native程序员
react-native遇到CSSLayout.h file n

react-native遇到CSSLayout.h file n

作者: 挂着铃铛的兔 | 来源:发表于2017-01-19 17:25 被阅读700次

    今天本打算重写React-Native与iOS原生的集成步骤,因为读了一遍之前的文章之后,觉得确实有些地方写的不太清楚,但在重写的时候,却遇'CSSLayout/CSSLayout.h' file not found这个问题,弄了好久才找到解决办法。

    如果遇到什么问题可以在评论区回复,或者加QQ群397885169讨论

    复现

    那篇文章的目标是将rn和原生iOS集成,所以,前面的步骤就不说了,之后会将那篇文章更新成完整版。
    package.json

    {
        "name": "react-iOSNative",
        "version": "0.0.1",
        "private": true,
        "scripts": {
            "start": "node node_modules/react-native/local-cli/cli.js start",
        },
        "dependencies": {
            "react": "15.4.1",
            "react-native": "0.39.2"
        }
    }
    

    通过上面的package文件可以看到react-native版本是0.39,为什么要用0.39呢?因为0.40有更大的坑啊!
    按照我写的集成步骤,通过npm installpod install这些操作之后,正常来说就应该可以运行项目了,but哪有那么简单的事呢!

    问题

    问题.png

    看到红色的警告了吧!这个在0.39和0.39之前的很多版本都会有这个问题,在这里就讲一下我的解决方式。(0.40咱以后再说)

    解决

    1. 将报错的#import <CSSLayout/CSSLayout.h>全部改成#import "CSSLayout.h"
      (改完第一个之后,可以通过common+b来编译一下,很容易就会找到第二处,0.39一共是四处哦!)
    2. 将第一步完成后,再编译项目会再报一个错误
      问题2.png
      通过检查项目会发现是因为有两个CSSLayout.h文件,重名了!。
    重名.png
    打开React文件夹,将CSSLayout文件夹整体删掉!

    3.完成上面的步骤后,再次编译还是会报错,所以,千万别忘了最重要的一步pod update,这步完成后,才见证奇迹的时刻!

    结语

    这个问题难为了我好久,google和baidu上都没有好的解决方式,在github上关于这个Issues的讨论有好多,最终还是凭之前的经验摸索出这个办法。

    希望这篇文章可以帮助各位跳出这个坑!

    相关文章

      网友评论

      本文标题:react-native遇到CSSLayout.h file n

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