【问题标题】:How to eject expo project to native code如何将世博项目弹出到本机代码
【发布时间】:2018-02-17 16:37:39
【问题描述】:

我使用命令 npm run eject 从 expo 中弹出项目。它会生成 2 个文件夹 iosandroid。我尝试通过xcode 运行该项目,但它仍然显示此错误。也许我不清楚弹出后如何运行项目,你能帮我运行它吗? 我运行了一些语句来安装pod,但无法工作https://github.com/CocoaPods/CocoaPods/issues/2303

【问题讨论】:

  • 如果您是通过 Expo 创建的,那么您应该使用 exp detacheject 用于使用 create-react-native-app 创建的项目。
  • 目前,我正在为我的项目使用 CRNA。我弹出它可以通过 Xcode 运行,但它不起作用。

标签: xcode react-native react-native-ios


【解决方案1】:

因此,在弹出时,您应该看到两个选项:

? How would you like to eject from create-react-native-app? (Use arrow keys)
❯ React Native: I'd like a regular React Native project. 
  ExpoKit: I'll create or log in with an Expo account to use React Native and the Expo SDK. 
  Cancel: I'll continue with my current project structure. 

如果您选择第一个 (React Native),那么打开您的 Xcode 项目并运行应用程序应该没有问题(也不会安装任何 pod)。由于您的错误和评论另有说明,我可以假设您选择了选项 2:Expokit

为此,您应该会收到有关创建 Expo 帐户或使用现有帐户的提示:

? How would you like to eject from create-react-native-app? 
  React Native: I'd like a regular React Native project. 
❯ ExpoKit: I'll create or log in with an Expo account to use React Native and the Expo SDK. 
  Cancel: I'll continue with my current project structure.

  An Expo account is required to proceed.
? It appears you're already logged in to Expo as ...

之后,您需要按照Developing With ExpoKit 中的步骤操作。特别是要让 iOS 运行,您需要在运行 npm run eject 之后执行所有步骤 in this section

如果您已经完成了所有这些,那么与Expo XDEexp 一起运行时它应该可以正常工作。我刚刚测试了两者,它可以正常工作。仔细检查您的步骤以确保您没有错过任何东西。否则,请编辑您的问题,详细说明您运行了哪些命令、您拥有哪些其他依赖项等,因为我无法重现您遇到的错误。

【讨论】:

  • 我是一步一步构建成功的,但是运行后还是有问题。 模块 RNGestureHandlerModule 需要设置主队列,因为它覆盖了constantsToExport,但没有实现 `requiresMainQueueSetup。在未来的版本中,React Native 将默认在后台线程上初始化所有原生模块,除非明确选择退出。这是构建成功后的消息问题
  • @HoaiTruong 好的,所以它有效,但现在还有第二个问题?如果是这种情况,请发布一个新问题编辑此问题并添加您现在遇到的问题(包括错误、您已采取的确切步骤,也许还有您的package.json 文件) .需要知道,这样我才能理解什么有效,什么无效,这样我就不会去追逐错误的假设。我要睡觉了,而且会很忙,所以我至少要两天才能回来查看,但这些信息应该足以让其他人帮忙。
  • 来自expo的一些组件,例如import { Font, AppLoading, Asset } from "expo"。如果弹出项目,这些组件是如何工作的?
【解决方案2】:

如果您想在没有 expo 的情况下下载新项目,请尝试运行:

react-native init ProjectNameHere

或者,如果您想在没有博览会的情况下转换自己的项目,请尝试:

 1. rm -rf node_modules
 2. remove expo dependencies from package.json
 3. npm install
 4. react-native upgrade

(注意:以下步骤将创建新的 ios 和 android 文件夹,您必须重做依赖项。我正在努力解决同样的问题,所以我发布了我的解决方案)

【讨论】:

    猜你喜欢
    • 2019-12-30
    • 1970-01-01
    • 2018-10-16
    • 1970-01-01
    • 2019-04-30
    • 2020-05-28
    • 2020-09-01
    • 2023-03-14
    • 2021-06-12
    相关资源
    最近更新 更多