Hybrid开发

React Native--常见问题汇总

2018-05-29  本文已影响606人  青苹果园
React Navite

问题汇总:

  1. /Users/xxx/Desktop/Finance/xxxx/ios/bundle/main.jsbundle: No such file or directory
  1. import <fishhook/fishhook.h> file not found
  1. import <RCTAnimation/RCTValueAnimatedNode.h> file not found
  1. 'config.h' file not found

  2. 'error:/Users/......./SupportFiles/main.jsbundle: No such file or directory'

  3. 'React/RCTBridgeModule.h' file not found

  4. Could not build Objective-C module 'React'

1. main.jsbundle: No such file or directory

 /Users/xxx/Desktop/Finance/PaishengFinance/ios/bundle/main.jsbundle: No such file or directory

解决方案:

方案一:使用如下命令生成 main.jsbundle,然后拖到项目中的bundle目录下

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

其中我们常使用的一线命令选项:

解决方案二:把命令直接写入npm script(package.json中)脚本中

"scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "bundle-ios":"react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ./ios/bundle/main.jsbundle --assets-dest ./ios/bundle"
  },

然后在终端执行npm run bundle-ios命令即可

修改RN入口代码

let jsCodeLocation = URL(string: "http://localhost:8081/index.bundle?platform=ios")
let jsCodeLocation = Bundle.main.url(forResource: "bundle/main", withExtension: "jsbundle")
let jsCodeLocation = CodePush.bundleURL()

温馨提示:上传代码的时候,如果.gitignore文件中有忽略*.jsbundle后缀的,先把它注释掉再上传

2. #import <fishhook/fishhook.h> file not found

解决方案:在package.json文件脚本scripts中添加如下代码

"fishhookinstall": "sed -I '' 's#<fishhook/fishhook.h>#\"fishhook.h\"#g' ./node_modules/react-native/Libraries/WebSocket/RCTReconnectingWebSocket.m",

然后终端执行:npm run fishhookinstallnpm run bundle-ios

3. #import <RCTAnimation/RCTValueAnimatedNode.h> file not found

解决方案:在package.json文件脚本scripts中添加如下代码

"nodeinstall": "sed -I '' 's\/#import <RCTAnimation\\/RCTValueAnimatedNode.h>\/#import \"RCTValueAnimatedNode.h\"\/' ./node_modules/react-native/Libraries/NativeAnimation/RCTNativeAnimatedNodesManager.h",

然后终端执行:npm run nodeinstallnpm run bundle-ios

4. 'config.h' file not found

解决方案:

// 1. 进入脚本目录,并运行脚本
cd node_modules/react-native/third-party/glog-0.3.4
../../scripts/ios-configure-glog.sh

// 2. 重新编辑运行即可

5. 'error:/Users/......./SupportFiles/main.jsbundle: No such file or directory'

// 1.项目根目录下执行
npm run build-ios

// 2.把项目中旧的main.jsbundle和assets删除,从bundle文件中重新拖进来,选项如下:

6. 'React/RCTBridgeModule.h' file not found

7. Could not build Objective-C module 'React'

由于RN项目用pod引入了React相关的库,运行的时候报Could not build Objective-C module 'React'错误。

解决方案:

进入如下(个人/资源库/Developer/Xcode/DerivedData/)目录,清空DerivedData目录下的所以缓存文件,重新运行项目即可。

持续更新中……

上一篇 下一篇

猜你喜欢

热点阅读