无法在全新的 React Native 项目上安装 Pod

The*_*Man 6 ios cocoapods react-native podfile

我在 M1 Mac 上运行,按照此处的所有说明进行操作后,我无法运行任何形式的pod install. 当我这样做时,我收到以下错误......

[!] Invalid `Podfile` file: undefined local variable or method
`min_ios_version_supported' for #<Pod::Podfile:0x000000010ed18c60>.
Run Code Online (Sandbox Code Playgroud)

我尝试bundle install先运行bundle exec pod install,但随后遇到同样的错误。

我使用yarn而不是npm,我尝试删除并按照本网站上的其他答案node_modules运行,尽管我并没有真正期望它们能够工作。yarn cache clean

此外,我的Podfile确实在文件顶部包含所需的导入...

require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
Run Code Online (Sandbox Code Playgroud)

我什至尝试手动输入min_ios_version_supportedat 12.4,因为这是我最近的项目正在处理的内容。这给了我一个不同的错误,我通过手动值输入再次修复了该错误,但这给了我一个不同的更复杂的错误,本质上告诉我最好实际解决问题而不是修补它。

最后,我尝试添加react-native.config.js文件。仍然收到相同的错误

我之前做过很多 React Native 项目,并注意到Podfile我的全新项目上的这个看起来与Podfile我过去使用的非常不同——我是否使用了尚未优化的新版本的 React?

Mie*_* PV 13

在 Podfile 中,min_ios_version_supported位于

require_relative '../node_modules/react-native/scripts/react_native_pods'
Run Code Online (Sandbox Code Playgroud)

因此,在'../node_modules/react-native/scripts/react_native_pods'中,您在第 29 行进行更改:

def min_ios_version_supported
  return '12.4'
end
Run Code Online (Sandbox Code Playgroud)

def min_ios_version_supported
  return '13.0'
end
Run Code Online (Sandbox Code Playgroud)

之后,删除Podfile.lock,Pods并 再次安装pod !

祝你好运!

  • 这不是正确的答案。node-modules 目录中的文件由 npm 控制。您所做的任何更改都将在下次运行“npm i”时被覆盖。 (6认同)

Vit*_*iko 7

我真的不喜欢更改node_modules文件夹中的某些内容的想法。只需尝试使用这种方法:

min_ios_versions_supported = ['13.0', min_ios_version_supported]
index_of_max = min_ios_versions_supported.each_with_index.max_by { |number, _| number.to_f }[1]
platform :ios, min_ios_versions_supported[index_of_max]
Run Code Online (Sandbox Code Playgroud)

您可以按原样设置任何min_ios_version_supported (here '13.0')内容。min_ios_version_supported (from RN)然后选择其中的最大值。利润!


小智 6

我们不能Podfile用这个替换吗?

platform :ios, '13.0'
Run Code Online (Sandbox Code Playgroud)

min_ios_version_supported是一个托管属性,取决于 的版本react-native,并且使用硬编码更改它可能会导致稍后出现问题,具体取决于您的开发环境。

如果您需要版本13.0,只需在您的Podfile.