npx pod-install returns "CocoaPods is not supported in this project"

npx pod-install returns "CocoaPods is not supported in this project"

上下文:我正在尝试使用 react-native-video 创建一个 React Native 应用程序。 iOs 安装说明以 npx pod-install.

开头

运行:

npx pod-install

Returns:

npx: installed 1 in 1.113s
Scanning for pods...
CocoaPods is not supported in this project

输出信息对我还没有帮助。所以我去了npm pod-install。看起来它抽象了 CocoaPods 和 gem 复杂性。

有没有比学习 CocoaPods 和 gem 更简单的方法来解决这个问题?


package.json

{
  "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": {
    "expo": "~37.0.3",
    "react": "~16.9.0",
    "react-dom": "~16.9.0",
    "react-native": "https://github.com/expo/react-native/archive/sdk-37.0.1.tar.gz",
    "react-native-video": "^4.4.5",
    "react-native-web": "~0.11.7"
  },
  "devDependencies": {
    "babel-preset-expo": "~8.1.0",
    "@babel/core": "^7.8.6"
  },
  "private": true
}

您收到错误的原因是您正在使用 Expo 构建 React-Native 项目。

Expo 将本机代码从您那里推断出来,这样您就不必处理本机代码。此外,Expo 项目不允许您编辑本机代码。 Cocoapods 将本机代码添加到您的应用程序,所以这就是您收到错误的原因。

如果您想在 Expo 项目中使用视频,那么您应该查看 Expo 提供的内容,视频文档是 here

如果这不符合您的需要并且您需要使用 react-native-video 那么您将需要 eject 来自 Expo 的项目,以便它成为一个完整的 React-Native 项目。这不是您应该轻率执行的步骤,也不能先对其进行全面研究。

我还建议您熟悉这个 SO question 的答案,它解释了 Expo 和 React-Native

之间的区别

如果您只是 运行 遇到 react-native-video 的这个问题,我建议您使用 expo 的视频库。他们文档中的说明:https://docs.expo.io/versions/latest/sdk/video/

expo install expo-av

import { Video } from 'expo-av';

<Video
  source={{ uri: 'http://d23dyxeqlo5psv.cloudfront.net/big_buck_bunny.mp4' }}
  rate={1.0}
  volume={1.0}
  isMuted={false}
  resizeMode="cover"
  shouldPlay
  isLooping
  style={{ width: 300, height: 300 }}
/>

您可以使用以下命令

npm i pod-install