React Native iOS 和 Android 文件夹不存在

React Native iOS and Android folders not present

我是 React Native 的新手,我在理解应用程序的文件夹结构时遇到了一些问题,该应用程序应该在创建时出现在项目文件夹中。基本上,当使用 npm 创建项目时,我会得到一些起始文件(App.js 等)和一个 node_modules 文件夹。我搞定了 运行 expo,它也创建了 .expo 文件夹。

但是,当我去看 React 的官方文档或查看 git 上的 plugins/addons 时,他们多次谈到项目中的 android 和 iOS 文件夹根。但他们无处可见。然后我得到一些提示,我可以安装和 运行 react-native-upgrade-git,据称这会生成这些丢失的文件夹。但这也没有用。

所以我错过了什么?这些文件夹位于何处?

编辑:这是来自 Youtube 教程的屏幕转储,显示了我正在寻找的项目结构:

React Native 之上的 Expo 的要点之一是您不会深入到 android 或 ios 代码。 Expo 会为您处理这些文件夹,您无需与它们交互。您是否需要这些文件夹?如果是这样,您将不得不弹出。这是执行此操作的文档:Ejecting with ExpoKit

您可以通过 运行:

获取该项目结构
npm run eject

但是,它从 Expo 框架中删除了该应用程序,这从 Android/iOS 代码中增加了很多好处和抽象。

我想如果你想用 ReactNative 开发应用程序,你应该开始遵循这个:Getting Started use React Native.

如果您使用 ReactNative 创建项目,只需在您的终端上输入:

react-native init YourProjectName
cd YourProjectName
react-native run-ios //for iOS

希望我的回答能帮助您使用 ReactNative 创建项目。谢谢..

我想我来晚了,但如果您不想阅读任何文档,请按照此步骤操作。

使用 expo 创建 React Native 项目时,

android 和 ios 文件夹不存在。所以你必须从你的项目中分离 expo 来创建 android 和 ios 文件夹。

首先在app.json文件中添加需要的包名

    ios: {
       bundleIdentifier: "com.yourcompany.yourappname",
    },
    android: {
       package: "com.yourcompany.yourappname",
    }

然后 运行 在终端中执行以下命令

exp detach

命令执行成功后你会发现android和ios文件夹

尝试生成 Android 和 iOS 文件夹

react-native eject

react-native link

开始安装react native,在运行 expo init YourProject之后,选择minimal (Typescript)。之后转到 YourProject 目录,不要 运行 npm start。但是 运行 npm 运行 android。希望这有帮助

我知道的最简单的方法

1) 从您当前的 app.json 中获取您的应用名称,假设名称是 "mynativeapp"

2) 在当前项目文件夹之外的某处创建一个新文件夹

3) 从中开始:

react-native init mynativeapp

4) 上面的命令将使 android 和 ios 文件夹在名称上与您的项目内部兼容

5) 将 android/ios 个文件夹复制到您的项目文件夹中

现在您可以尝试启动您的原生项目了。我检查了 Android:

react-native 运行-android

尽情享受吧!

P.S。 "react": "16.9.0", "react-native": "0.61.4"

这对我有用:转到设置并从 "Files:Exclude" 中删除条目 "android" 和 "ios"。不要忘记这两个环境 - 用户和工作区。

正在删除工作区中的条目:

... 用户相同:

删除文件夹 androidios

npm i react-native-eject
react-native eject

我不得不 运行 expo eject。为什么我没有这些文件夹背后的故事是由于一些损坏的依赖项而不得不降级我的 react-native 应用程序,然后我遇到了构建失败。所以我删除了 ios 和 android 文件夹,然后 运行 expo eject 并修复了所有构建问题。请注意,我通过包 json 中的脚本使用了 expo 命令行,以便版本与我的项目使用的版本相匹配。

按照他的指示添加到 Funk Soul Ninja 的回答中(谢谢!:)),对于那些从 Expo 项目开始的人:

expo run:ios

对我有用。

该命令创建 ios 文件夹,其中包含可以在 Xcode 中编辑和构建的项目。

我没有做这一步,但我相信 expo run:android 对 Android 做了完全类似的事情;但我建议查看 Expo documentation on adding custom native code.

查看此 Expo 文件 Adding custom native code

一般来说,

  • 生成ios文件夹:expo run:ios
  • 生成android文件夹:expo run:android