Reactive-Native学习:iOS工程内嵌React-Native(一)

来源:互联网 发布:手机自动截图软件 编辑:程序博客网 时间:2024/05/20 10:54

React-Native越来越受开发者的追捧,其用js驱支Native的特性正好弥补了H5的性能瓶颈,同时也解决了原生开发的延时更新问题。虽然还有不少问题需要解决,但提前研究布局已经成为不少开发团队的方向。

这两天也把我们的几个工程嵌入了React-Native,有两个新的工程很顺利就完成了,有个老的工程(非arc)就不是那么顺利了,解决了好长时间才解决。以下来说说遇到的问题及解决方案。

首先出现了 ld: library not found for -lReact,网上google一圈没有发现相同的问题,只发现类似的,解决方案是因为Framework  search  paths  路径问题,导致类库找不到。关于这个问题,在 pod install 的时候有个警告:

[!] The `T[Debug]` target overrides the `HEADER_SEARCH_PATHS` build setting defined in `Pods/Target Support Files/Pods-T/Pods-T.debug.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

于是按照警告把Header Search Paths和Other Linker Flags改了一遍,这里倒是解决了  ld: library not found for -lPod的问题,但  ld: library not found for -lReact 依然存在。

在这里。。。。耗了一天的时间。。。那个无助啊。。。

于是和成功能工程对比Build Setting后是不是老工程有什么特殊的设置问题。于事无补,说来惭愧,是漏了一个重要设置。

偶尔在一个地方看到一老外说到设置Build Active Architecturre Only问题,于是试了一下都设志No,成功了!!!那个高兴啊,其实这个值的主要问题出现在这里和Pod的设置得同步,否则有可能出来编译的版本问题,同时Architectures里的值也最好同步一下吧。至于为什么,得回去去恶补xcode工程Building Setting中这里的参数的问题。

成功后吃了个饭回来,不知道动哪了,又不行了,这下把上面的重做一遍也不行, ld: library not found for -lReact重现,这下又崩溃了,心想这种问题有可能不是链接的问题,有可能是包没成功导至链接的问题,在Xcode的运行重有个React包,不如试试能不能运行成功?至于为什么会想到这一步,中间的各种曲折就不提了,反正最后一运行,果然报错,而且是 sharedApplication 找不到的问题,没有办法了,还是再对比Build Setting,这次范围比较小了,直接对比Pod里React的就可以,发现有个属性Require Only App-Extension-Safe API不一样,改为No试一下,Ok!回去又恶补了这个属性的相关知识。

。。。。。。

至此基本上能运行了,看到其实在Xcode面前,我们还是认识相当夫浅的啊。。。


0 0
原创粉丝点击