代码之家  ›  专栏  ›  技术社区  ›  AmerllicA

React Native Firebase导致Xcode找不到“include/core/SkData.h”文件

  •  0
  • AmerllicA  · 技术社区  · 2 年前

    事实上,使用firebase ios sdk v9+(react native firebase v15+) 必须 告诉CocoaPods使用框架。使用 use_framework 导致了几个问题,其中一个问题是:Xcode找不到 react-native-skia 头文件。

    在Xcode上,它显示为:

    找不到“include/core/SkData.h”文件

    在终端上是这样的:

    以下生成命令失败: CompileC/Users/amellica/Library/Developer/Xcode/DerivedData/KidspodMobileClient fmdzmtzitsgnoepiahdecibemvu/Build/Inmediates.noindex/Pods.Build/Debug iphonesimulator/areact native skia.Build/Objects normal/arm64/SkiaManager.o/Users/amellica/WebstormProjects/Dubit/Kidspod/node_modules/@shopify/react native skia/ios/RNSkia ios/SkiaManager.mm normal arm64 objective-c++com.apple.compilers.lvm.clang_1_0.编译器(在项目的目标“react native skia”中

    无法使用生成项目 使用框架(_F)

    1 回复  |  直到 2 年前
        1
  •  0
  •   AmerllicA    2 年前

    唯一的解决方案是在安装到 Podfile 内部 ios 文件夹,若要执行此操作,请打开 播客文件 然后列出要更改的pod:

    # Convert Skia pods into static libraries
    $static_library = [
     'react-native-skia/Api',
     'react-native-skia/Jsi',
     'react-native-skia/RNSkia',
     'react-native-skia/SkiaHeaders',
     'react-native-skia/Utils',
     'react-native-skia',
    ]
    

    然后在上述代码之后添加以下代码:

    pre_install do |installer|
      Pod::Installer::Xcode::TargetValidator.send(:define_method, :verify_no_static_framework_transitive_dependencies) {}
    
      installer.pod_targets.each do |pod|
        ## Skia pod correction
        if $static_library.include?(pod.name)
          puts "Overriding the build_type to static_library from static_framework for #{pod.name}"
          def pod.build_type;
            Pod::BuildType.static_library
          end
        end
    
        ## Firebase
        bt = pod.send(:build_type)
        puts "#{pod.name} (#{bt})"
        puts "  linkage: #{bt.send(:linkage)} packaging: #{bt.send(:packaging)}"
      end
    end
    

    请在更改后,在您的 操作系统 文件夹运行 pod install 命令,然后尝试构建您的项目。