rn项目 假如cocoapods_[冒个泡]CocoaPods集成RN到Swift项目报错及解决办法

背景

RN0.31之后的版本,使用CocoaPods集成到Swift项目,编译不通过,报错为

'CSSLayout/CSSLayout.h'file not found

原因是CocoaPods强制把所有的头文件(包括CSSLayout.h)放到同一个目录里了,而RN还傻乎乎的试图通过『#import 』这种方式引CSSLayout.h文件,当然找不到啦

解决方案

方案一:把RN的包退回到0.30去

方案二:

在package.json文件的script里加一句:

"postinstall": "find ./node_modules/react-native \\( -name *.h -o -name *.m \\) -print0 | xargs -0 sed -i '' -e 's::\"\\1\":g'"

修改后的样式大概长这样:

{

"name": "项目名字",

"version": "0.0.1",

"private": true,

"scripts": {

"start": "node node_modules/react-native/local-cli/cli.js start",

"bundle": "react-native bundle --platform ios --entry-file index.ios.js --bundle-output bundle/main.ios.jsbundle --assets-dest bundle/ --dev false",

"postinstall": "find ./node_modules/react-native \\( -name *.h -o -name *.m \\) -print0 | xargs -0 sed -i '' -e 's::\"\\1\":g'"

},

"dependencies": {

"react": "15.3.1",

"react-native": "0.32.0"

}

}

修改node_modules/react-native/React.podspec文件,干掉第48行。

原来长这样:

s.subspec 'CSSLayout' do |ss|

ss.source_files = "React/CSSLayout/**/*.{c,h}"

ss.header_mappings_dir = "React"

end

修改后46行附近大概长这样:

s.subspec 'CSSLayout' do |ss|

ss.source_files = "React/CSSLayout/**/*.{c,h}"

end

重新执行npm install

重新执行pod install

打完收工

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值