使用react-native-maps和use_frameworks时,Pod安装错误`React/RCTView.h'文件未找到。

12

我似乎无法使用pod install将react-native-maps安装到我的React Native iOS项目中。 我收到了警告 Missing dependency target "React"React/RCTView.h' file not found 的错误信息。

https://github.com/react-community/react-native-maps/blob/master/docs/installation.md

我认为这是由于pod文件中使用了use_frameworks!标志。 是否有任何合理的解决方法?

这是我的pod文件:

platform :ios, '11.0'
target 'MyCoolApp' do
  use_frameworks!
  pod 'ViroReact', :path => '../node_modules/react-viro/ios/'
  pod 'ViroKit', :path => '../node_modules/react-viro/ios/dist/ViroRenderer/'
  # Required by RNFirebase
  pod 'Firebase/Core'
  pod 'Firebase/Auth'
  pod 'Firebase/Firestore'
  pod 'Firebase/Messaging'
  pod 'Fabric', '~> 1.7.5'
  pod 'Crashlytics', '~> 3.10.1'
  pod 'Firebase/Database'
  pod 'Firebase/RemoteConfig'
  pod 'Firebase/Storage'
  pod 'Firebase/Performance'
  pod 'Firebase/DynamicLinks'

  rn_path = '../node_modules/react-native'
  rn_maps_path = '../node_modules/react-native-maps'

  # See http://facebook.github.io/react-native/docs/integration-with-existing-apps.html#configuring-cocoapods-dependencies
  pod 'yoga', path: "#{rn_path}/ReactCommon/yoga/yoga.podspec"
  pod 'React', path: rn_path, subspecs: [
    'Core',
    'CxxBridge',
    'DevSupport',
    'RCTActionSheet',
    'RCTAnimation',
    'RCTGeolocation',
    'RCTImage',
    'RCTLinkingIOS',
    'RCTNetwork',
    'RCTSettings',
    'RCTText',
    'RCTVibration',
    'RCTWebSocket',
  ]

  # React Native third party dependencies podspecs
  pod 'DoubleConversion', :podspec => "#{rn_path}/third-party-podspecs/DoubleConversion.podspec"
  pod 'glog', :podspec => "#{rn_path}/third-party-podspecs/glog.podspec"
  pod 'Folly', :podspec => "#{rn_path}/third-party-podspecs/Folly.podspec"

  # react-native-maps dependencies
  pod 'react-native-maps', path: rn_maps_path
end

pre_install do |installer|
# workaround for CocoaPods/CocoaPods#3289
  Pod::Installer::Xcode::TargetValidator.send(:define_method, :verify_no_static_framework_transitive_dependencies) {}
end

post_install do |installer|
  installer.pods_project.targets.each do |target|
    if target.name == 'react-native-google-maps'
      target.build_configurations.each do |config|
        config.build_settings['CLANG_ENABLE_MODULES'] = 'No'
      end
    end
    if target.name == "React"
      target.remove_from_project
    end
  end
end
1个回答

0

我个人在Podefile中添加了一些代码,以解决您在此遇到的头文件搜索路径问题。

post_install do |installer|
    puts 'post_install'
    app_project = Xcodeproj::Project.open("./X.xcodeproj")
    output = `find .. -name "*.xcodeproj"`
    p output
    output.split("\n").each do |projectPath|
      app_project = Xcodeproj::Project.open(projectPath)
      app_project.native_targets.each do |target|
        target.build_configurations.each do |config|
          if !config.build_settings['HEADER_SEARCH_PATHS']
            config.build_settings['HEADER_SEARCH_PATHS'] ||= []
          end
          config.build_settings['HEADER_SEARCH_PATHS'] << ' $(SRCROOT)/Pods/Headers/**'
          config.build_settings['HEADER_SEARCH_PATHS'] <<' $(SRCROOT)/../../../../ios/Pods/Headers/**'
          config.build_settings['HEADER_SEARCH_PATHS'] << ' $(SRCROOT)/../../../ios/Pods/Headers/**'
          config.build_settings['HEADER_SEARCH_PATHS'] << ' $(SRCROOT)/../../ios/Pods/Headers/**'
          config.build_settings['HEADER_SEARCH_PATHS'] << ' $(SRCROOT)/../ios/Pods/Headers/**'
          app_project.save
        end
      end  
    end
    puts 'post_install DONE'
  end
````

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接