首页 > 解决方案 > 使用 expo 弹出应用程序后的问题

问题描述

启动命令后npm run eject,我按照以下步骤操作:

  1. 裸露:我想要一个裸露的 React Native 项目。
  2. 我设置了应用程序和 xcode 项目的名称

命令返回此消息Ejected successfully! 之后,进入ios生成的文件夹,我运行命令pod install,结果是Pod installation complete!

执行此过程后,我尝试使用ios模拟器运行应用程序,但出现此错误:

Expo SDK 需要 Expo 才能运行。似乎本机 Expo 模块不可用,并且此代码未在 Expo 上运行。访问https://docs.expo.io了解有关开发 Expo 项目的更多信息。

请注意,在执行npm run eject命令之前,应用程序可以正常工作。

这是package.json之前的eject

{
  "main": "node_modules/expo/AppEntry.js",
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "web": "expo start --web",
    "eject": "expo eject"
  },
  "dependencies": {
    "@apollo/react-hooks": "^3.0.1",
    "apollo-boost": "^0.4.4",
    "apollo-cache-inmemory": "^1.6.3",
    "apollo-client": "^2.6.4",
    "apollo-link-http": "^1.5.15",
    "expo": "^34.0.1",
    "expo-font": "^6.0.1",
    "graphql-tag": "^2.10.1",
    "metro-react-native-babel-preset": "^0.56.0",
    "prop-types": "^15.7.2",
    "react": "16.8.3",
    "react-apollo": "^3.0.1",
    "react-dom": "^16.8.6",
    "react-native": "https://github.com/expo/react-native/archive/sdk-34.0.0.tar.gz",
    "react-native-camera": "^3.3.2",
    "react-native-camera-kit": "^8.0.1",
    "react-native-circle-checkbox": "^0.1.6",
    "react-native-elements": "^1.1.0",
    "react-native-gesture-handler": "^1.3.0",
    "react-native-image-picker": "^1.1.0",
    "react-native-modal-datetime-picker": "^7.5.0",
    "react-native-signature-pad": "^0.1.0",
    "react-native-vector-icons": "^6.6.0",
    "react-native-web": "^0.11.4",
    "react-native-webview": "^5.12.1",
    "react-navigation": "^3.12.1",
    "tcomb-form-native": "^0.6.20"
  },
  "devDependencies": {
    "babel-preset-expo": "^6.0.0"
  },
  "private": true
}

之后变成ejectpackage.json

{
  "scripts": {
    "start": "react-native start",
    "android": "react-native run-android",
    "ios": "react-native run-ios",
    "web": "expo start --web"
  },
  "dependencies": {
    "expo": "^34.0.1",
    "react": "16.8.3",
    "react-dom": "^16.8.6",
    "react-native": "0.59.10",
    "react-native-gesture-handler": "^1.3.0",
    "react-native-reanimated": "~1.1.0",
    "react-native-screens": "1.0.0-alpha.22",
    "react-native-unimodules": "~0.5.2",
    "react-native-web": "^0.11.4",
    "@apollo/react-hooks": "^3.0.1",
    "apollo-boost": "^0.4.4",
    "apollo-cache-inmemory": "^1.6.3",
    "apollo-client": "^2.6.4",
    "apollo-link-http": "^1.5.15",
    "expo-font": "^6.0.1",
    "graphql-tag": "^2.10.1",
    "metro-react-native-babel-preset": "^0.56.0",
    "prop-types": "^15.7.2",
    "react-apollo": "^3.0.1",
    "react-native-camera": "^3.3.2",
    "react-native-camera-kit": "^8.0.1",
    "react-native-circle-checkbox": "^0.1.6",
    "react-native-elements": "^1.1.0",
    "react-native-image-picker": "^1.1.0",
    "react-native-modal-datetime-picker": "^7.5.0",
    "react-native-signature-pad": "^0.1.0",
    "react-native-vector-icons": "^6.6.0",
    "react-native-webview": "^5.12.1",
    "react-navigation": "^3.12.1",
    "tcomb-form-native": "^0.6.20"
  },
  "devDependencies": {
    "babel-preset-expo": "^6.0.0"
  },
  "private": true
}

标签: react-nativeexpo

解决方案


您遇到的问题是您在 App.js 中有一个来自“expo”包的 AppLoading,没有 que ExpoSDK 就没有支持。您必须删除它并将字体放入 componentDidMount()


推荐阅读