console.error:“react-native-maps”必须将AirGoogleMaps目录添加到您的xCode项目中

时间:2016-12-21 15:30:20

标签: ios xcode react-native react-native-maps

  

console.error:“react-native-maps”必须将AirGoogleMaps目录添加到您的xCode项目

当我尝试在react-native-maps模块中测试示例时出现此错误。

Github:https://github.com/airbnb/react-native-maps/tree/master/example

很明显,我应该将dir添加到我的Xcode项目中,但我不知道如何添加它们。

我是否有一个将dir添加到Xcode项目的示例?

image of error

3 个答案:

答案 0 :(得分:1)

我使用react native 0.61遇到了这个问题,我的案例的解决方案是: 停止Metro Bundler,然后转到pods目录:

cd ..
cd ios

再次安装吊舱:

pod install

转到项目根目录:

cd ..

并再次运行项目npx react-native run-ios

这是我的Podfile的片段

  rn_maps_path = '../node_modules/react-native-maps'
  pod 'react-native-google-maps', :path => rn_maps_path
  pod 'GoogleMaps'
  pod 'Google-Maps-iOS-Utils'

答案 1 :(得分:0)

最近我遇到了这个问题,我的问题通过对pod文件进行一些更改而解决了。

source 'https://github.com/CocoaPods/Specs.git'
# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'

target 'AppName' do
    pod 'Yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
    pod 'React', :path => '../node_modules/react-native', :subspecs => [
    'Core',
    'RCTText',
    'RCTImage',
    'RCTAnimation',
    'RCTActionSheet',
    'RCTLinkingIOS',
    'RCTSettings',
    'RCTVibration',
    'RCTNetwork',
    'RCTWebSocket',
    'DevSupport',
    'BatchedBridge',
    'RCTGeolocation',
    ]

    pod 'GoogleMaps'  # Remove this line if you don't want to support GoogleMaps on iOS
    pod 'react-native-maps', path: '../node_modules/react-native-maps'
    pod 'react-native-google-maps', path: '../node_modules/react-native-maps'  # If you need GoogleMaps support on iOS

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

在您的JS文件中,地图标记也必须是这样的

<MapView
    provider={PROVIDER_GOOGLE}                   
    style={styles.map}
    // provider='google'
    // mapType='standard'
    ...
>

请注意,您的pod文件必须正确链接。无需手动添加任何内容。 您可以使用此命令删除pod文件和路径

pod deintegrate

pod clean

并安装Cocoapods-Deintegrate插件和Cocoapods-Clean插件

在终端上使用以下命令进行安装。

sudo gem install cocoapods-deintegrate

Cocoapods清洁插件

在终端上使用以下命令进行安装。

sudo gem install cocoapods-clean

希望这可以为您提供帮助。

答案 2 :(得分:0)

我刚刚删除了MapView组件中的以下道具,它起作用了!

provider={MapView.PROVIDER_GOOGLE}