[冒個(gè)泡]CocoaPods集成RN到Swift項(xiàng)目報(bào)錯(cuò)及解決辦法

背景

  1. RN0.31之后的版本,使用CocoaPods集成到Swift項(xiàng)目,編譯不通過,報(bào)錯(cuò)為

'CSSLayout/CSSLayout.h'file not found

  1. 原因是CocoaPods強(qiáng)制把所有的頭文件(包括CSSLayout.h)放到同一個(gè)目錄里了,而RN還傻乎乎的試圖通過『#import <CSSLayout/CSSLayout.h>』這種方式引CSSLayout.h文件,當(dāng)然找不到啦

解決方案

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

  1. 在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"
  }
}
  1. 修改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
  1. 重新執(zhí)行npm install
  2. 重新執(zhí)行pod install

打完收工

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容