必须将AirGoogleMaps目录添加到您的xCode项目中,以支持iOS RN 0.57.8上的GoogleMaps

时间:2019-01-21 13:31:44

标签: ios react-native google-maps-sdk-ios google-maps-react

我正在面对这个问题,我相信许多人经过一番搜索后会面临这个问题。我正在尝试手动安装Google Maps IOS SDK,而不是pods方法。任何与豆荚有关的解决方案都不适合我。我可以渲染地图,但是当我提供“ provider google”时,会抛出错误。我需要Google地图而不是Apple地图。 到目前为止,我所做的事情:

我的package.json代码段:

"scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"   
 },   
 "dependencies": {
    "moment": "^2.22.2",
    "npm": "^6.5.0",
    "react": "16.6.3",
    "react-native": "0.57.8",
    "react-native-blur": "^3.2.2",
    "react-native-drawer": "^2.5.0",
    "react-native-elements": "^0.19.1",
    "react-native-maps": "^0.23.0",

我正在遵循这份文档,除了一些小的调整外,我认为它是非常准确的。

我的React本机组件,用于渲染地图。

import React from 'react'
import { ScrollView, View } from 'react-native'
import styles from './style'
import MapView, { PROVIDER_GOOGLE } from 'react-native-maps'

class Location extends React.Component {

  render () {
    return (
      <View style={styles.container}>
        <MapView
          provider={PROVIDER_GOOGLE} // remove if not using Google Maps
          style={styles.map}
          region={{
            latitude: 37.78825,
            longitude: -122.4324,
            latitudeDelta: 0.015,
            longitudeDelta: 0.0121,
          }}
        >
        </MapView>
      </View>
    )
  }
}

我的Xcode文件层次结构:

enter image description here

链接的库:

enter image description here

此外,我在构建设置中将标题搜索中的路径包括在内。另外,我在Xcode的库中包含了AirMaps.xcodeproj。我已经看到了Podfile的更多解决方案,但我很好奇如果有人通过解决此错误来手动完成此操作。我不确定我做错了什么。

1 个答案:

答案 0 :(得分:1)

最后在这里找到了我所缺少的东西:Google Maps SDK for iOS requires GoogleMaps.bundle to be part of your target under 'Copy Bundle Resources

所以我所做的是在安装react-native的步骤中:

  1. npm install --save react-native-maps
  2. react-native link react-native-maps
  3. 从此处下载google maps ios SDK [https://developers.google.com/maps/documentation/ios-sdk/start
  4. 按照步骤4手动安装ios SDK Google文档步骤

    将以下捆绑包拖放到项目中的“框架”下 Xcode(系统提示时,如果需要,请选择“复制项目”): GoogleMaps-2.7.0 / Base / Frameworks / GoogleMapsBase.framework GoogleMaps-2.7.0 / Maps / Frameworks / GoogleMaps.framework GoogleMaps-2.7.0 / Maps / Frameworks / GoogleMapsCore.framework

  5. 右键单击项目中的GoogleMaps.framework,然后选择“显示在” 发现者。它不说的是...然后进入子文件夹 称为资源
  6. 将GoogleMaps.bundle从“资源”文件夹拖到您的 项目。我们建议将其放在 Xcode。 出现提示时,请确保将项目复制到目标组的 文件夹未选中。
  7. 转到您项目的Xcode中的“构建设置”,然后键入“标题 搜索栏中的“搜索路径”,然后双击调试以查看 调试版本中的标题搜索路径。单击+添加路径,然后 用递归选项添加“ $(SRCROOT)/ Frameworks /”。
  8. 转到Xcode中的项目的构建阶段。添加以下内容 框架和库。

    • GoogleMapsBase.framework
    • GoogleMaps.framework
    • GoogleMapsCore.framework
    • libAirMaps.a 注意:如果libAirMaps.a没有自动链接,则可以通过从以下位置拖动AirMaps.xcodeproj进行手动链接 将node_modules / react-native-maps / lib / ios移至以下位置的Libraries文件夹中 k /开始

希望它对任何人都有帮助:)