如何防止 'UIColor' 在 ios 的 ionic/react v5 中没有成员 'systemBackground' ` 和 'UIStatusBarStyle' 没有成员 'darkContent'?

How to prevent 'UIColor' has no member 'systemBackground' ` and 'UIStatusBarStyle' has no member 'darkContent' in ionic/react v5 for ios?

使用 Ionic React v 5.3.0 编写一个简单的应用程序,没有插件(还)

离子构建后,Xcode报告swift构建错误: Type 'UIStatusBarStyle' has no member 'darkContent' ios swift v 4.2 和 swift v 5,ios 部署目标 8、9、10 和 11

会发生这种情况

我尝试按照此处的说明删除并重新生成 node_modulesios 目录来解决问题:https://ionicframework.com/docs/troubleshooting/native

仍然看到 xcode 中的问题,带有构建时警告和 4 个 Swift 编译错误。
其中两个错误是 Type 'UIColor' has no member 'systemBackground' 在 CapBridgeViewcontroller.swift 中发现的 Pods>Development Pods> Capacitor > Plugins

    if let backgroundColor = (bridge!.config.getValue("ios.backgroundColor") as? String) ?? (bridge!.config.getValue("backgroundColor") as? String) {
      webView?.backgroundColor = UIColor(fromHex: backgroundColor)
      webView?.scrollView.backgroundColor = UIColor(fromHex: backgroundColor)
    } else if #available(iOS 13, *) {
      // Use the system background colors if background is not set by user
      webView?.backgroundColor = UIColor.systemBackground
      webView?.scrollView.backgroundColor = UIColor.systemBackground
    }

另外两个错误是: Type 'UIStatusBarStyle' has no member 'darkContent' 在 statusBar.swift

中找到
 public func setStatusBarDefaults() {
    if let plist = Bundle.main.infoDictionary {
      if let statusBarHidden = plist["UIStatusBarHidden"] as? Bool {
        if (statusBarHidden) {
          self.isStatusBarVisible = false
        }
      }
      if let statusBarStyle = plist["UIStatusBarStyle"] as? String {
        if (statusBarStyle == "UIStatusBarStyleDarkContent") {
          if #available(iOS 13.0, *) {
            self.statusBarStyle = .darkContent
          } else {
            self.statusBarStyle = .default
          }
        } else if (statusBarStyle != "UIStatusBarStyleDefault") {
          self.statusBarStyle = .lightContent
        }
      }
    }
  }

  @objc func setStyle(_ call: CAPPluginCall) {
    let options = call.options!

    if let style = options["style"] as? String {
      if style == "DARK" {
        bridge.setStatusBarStyle(.lightContent)
      } else if style == "LIGHT" {
        if #available(iOS 13.0, *) {
          bridge.setStatusBarStyle(.darkContent)
        } else {
          bridge.setStatusBarStyle(.default)
        }
      }
    }
    
    call.success([:])
  }

我期望的是我可以从 ionic cli 构建我的应用程序,而不必在每次构建时都修改 swift 代码。我可以在我的离子项目中添加一个设置来防止这个错误吗?

电容器需要 Xcode 11 来构建

https://capacitorjs.com/docs/getting-started/dependencies#ios-development

上面的答案找到了:https://github.com/ionic-team/capacitor/issues/3338