4

我正在查看 react native 项目的源代码,但在构建它时遇到了问题。

运行以下命令后

  1. npm install在项目的根
  2. pod install在 ios 文件夹中

我在终端收到以下消息:

sh: -c: line 0: syntax error near unexpected token `('

sh: -c: line 0: `sed -i -e  $'s/__IPHONE_10_0/__IPHONE_12_0/' /Users/myUser/dev/ReactExplorerApp(Android)/ios/Pods/RCT-Folly/folly/portability/Time.h'

当我使用 XCode 构建应用程序时,我在 Time.h (...Pods/RCT-Folly/folly/portability/Time.h) 处收到以下错误消息:

Typedef redefinition with different types ('uint8_t' (aka 'unsigned char') vs 'enum clockid_t')

该应用程序使用“react-native”:“0.66.1”。我正在使用 cocoapods 版本 1.11.2、节点版本 14.17.2 和 XCode 版本 13.1

Podfile 内容:

require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'

platform :ios, '11.0'

target 'ExplorerApp' do
  config = use_native_modules!
  pod 'GoogleSignIn'
  pod 'RNI18n', :path => '../node_modules/react-native-i18n'
  pod 'react-native-version-check', :path => '../node_modules/react-native-version-check'
  pod 'react-native-camera', path: '../node_modules/react-native-camera', subspecs: [
    'FaceDetectorMLKit',
    'BarcodeDetectorMLKit'
  ]

  use_react_native!(
    :path => config[:reactNativePath],
    # to enable hermes on iOS, change `false` to `true` and then install pods
    :hermes_enabled => false
  )


  target 'ExplorerAppTests' do
    inherit! :complete
    # Pods for testing
  end

  # Enables Flipper.
  #
  # Note that if you have use_frameworks! enabled, Flipper will not work and
  # you should disable the next line.
  use_native_modules!
  use_flipper!()

  post_install do |installer|
    react_native_post_install(installer)
    __apply_Xcode_12_5_M1_post_install_workaround(installer)
  end
end

我尝试了许多类似问题的解决方案,但没有奏效。我尝试通过在 podfile 中将其注释掉来禁用 Flipper,我还尝试将目标更改为 iOS 12。我还尝试在删除 podfile.lock 并运行后安装 pod pod install --repo-update,我也运行了pod cache clean --all

我也在这里https://github.com/facebook/react-native/issues/31480尝试了解决方案,"react-native": "0.64.1" // or higher 但它对我不起作用,我不清楚他们指的是什么“从podfile.lock”,如果仍然有错误。

编辑:[解决方案] 我通过git clone [repo url]在终端中实际运行而不是使用与 VSCode 交互的 Azure DevOps 的克隆按钮来消除此错误。

4

1 回答 1

0

导航到此文件 =>ios/Pods/RCT-Folly/folly/portability/Time.h

评论这一行 =>typedef uint8_t clockid_t;

将=> 更改_IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_10_0_IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_12_0

这不是一个好的解决方案。它刚刚通过了我的 ios 构建。

欢迎任何其他永久解决方案。

于 2022-02-04T13:30:46.123 回答