背景
- RN0.31之后的版本,使用CocoaPods集成到Swift項(xiàng)目,編譯不通過,報(bào)錯(cuò)為
'CSSLayout/CSSLayout.h'file not found
- 原因是CocoaPods強(qiáng)制把所有的頭文件(包括CSSLayout.h)放到同一個(gè)目錄里了,而RN還傻乎乎的試圖通過『#import <CSSLayout/CSSLayout.h>』這種方式引CSSLayout.h文件,當(dāng)然找不到啦
解決方案
方案一:把RN的包退回到0.30去
方案二:
- 在package.json文件的script里加一句:
"postinstall": "find ./node_modules/react-native \\( -name *.h -o -name *.m \\) -print0 | xargs -0 sed -i '' -e 's:<CSSLayout/\\(.*\\)>:\"\\1\":g'"
修改后的樣式大概長(zhǎng)這樣:
{
"name": "項(xiàng)目名字",
"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:<CSSLayout/\\(.*\\)>:\"\\1\":g'"
},
"dependencies": {
"react": "15.3.1",
"react-native": "0.32.0"
}
}
- 修改node_modules/react-native/React.podspec文件,干掉第48行。
原來長(zhǎng)這樣:
s.subspec 'CSSLayout' do |ss|
ss.source_files = "React/CSSLayout/**/*.{c,h}"
ss.header_mappings_dir = "React"
end
修改后46行附近大概長(zhǎng)這樣:
s.subspec 'CSSLayout' do |ss|
ss.source_files = "React/CSSLayout/**/*.{c,h}"
end
- 重新執(zhí)行npm install
- 重新執(zhí)行pod install
打完收工