“如何修复”;cordova插件Google地图尚未安装或准备就绪;在具有离子4的IOS上

“如何修复”;cordova插件Google地图尚未安装或准备就绪;在具有离子4的IOS上,ios,google-maps,ionic-framework,Ios,Google Maps,Ionic Framework,我使用谷歌地图在Ionic 4上开发了一个应用程序。我首先在Android上开发,然后当我想将我的项目导出到IOS时,出现了一些问题 我想指出的是,我在Android上使用了cordova插件googlemaps的“multiple_maps”版本,没有它,我就无法在Android上使用地图 我为我的项目安装了依赖项: 科尔多瓦 npm安装@ionic native/core@beta npm安装@ionic native/google-maps@beta 爱奥尼亚cordova插件添加cor

我使用谷歌地图在Ionic 4上开发了一个应用程序。我首先在Android上开发,然后当我想将我的项目导出到IOS时,出现了一些问题

我想指出的是,我在Android上使用了cordova插件googlemaps的“multiple_maps”版本,没有它,我就无法在Android上使用地图

我为我的项目安装了依赖项:

  • 科尔多瓦
  • npm安装@ionic native/core@beta
  • npm安装@ionic native/google-maps@beta
  • 爱奥尼亚cordova插件添加cordova插件谷歌地图——适用于ANDROID=“我的ANDROID密钥”的变量API\u密钥——适用于IOS=“我的IOS密钥”的变量API\u密钥
但在这最后一个命令下,问题出现了。我可以在控制台上看到android和浏览器安装得很好,ios也多亏了“pod”。 所以我尝试在Xcode上构建:我有一个错误,就是找不到文件“GoogleMaps/GoogleMaps.h”

我找到的解决方案是打开Podfile文件,将GoogleMaps的版本从默认的“2.7.0”更改为“3.1.0”。因此,我删除了Podfile.lock文件和Pods文件夹,并重新启动了pod安装

不幸的是,我仍然有错误“GoogleMaps/GoogleMaps.h找不到”,但我曾经设法(不幸的是,我不知道怎么做)删除这个错误并启动这个应用程序

而不是地图,我有一个错误“[GoogleMaps]cordova插件GoogleMaps尚未安装或准备就绪。”。我很确定它背后的代码是可以的,因为它在Android上工作没有任何问题

以下是我的不同信息:

OS:Mojave10.14.5(最新版本) XCode:10.2(最新版本) 科尔多瓦:8.1.2 cordova ios:5.0.1 离子型:5.0.1

我的cordova插件列表:

cordova剪贴板1.2.1“剪贴板”
cordova插件摄像头4.0.3“摄像头”
cordova插件设备2.0.2“设备”
cordova插件文件6.0.1“文件”
cordova插件文件传输1.7.1“文件传输”
cordova插件文件路径1.5.1“cordova插件文件路径”
cordova插件地理定位4.0.1“地理定位”
cordova插件谷歌地图2.6.2“cordova插件谷歌地图”
cordova插件离子键盘2.1.3“cordova插件离子键盘”
cordova插件爱奥尼亚网络视图3.1.2“cordova插件爱奥尼亚网络视图”
cordova-plugin-mauron85-background-geolocation 3.0.3“CDVBackgroundGeolocation”
cordova插件网络信息2.0.1“网络信息”
cordova插件splashscreen 5.0.2“splashscreen”
cordova插件状态栏2.4.2“状态栏”
cordova插件白名单1.3.3“白名单”
info.protonet.imageresizer 0.1.1“图像大小调整器”

mypackage.json

"dependencies": {
    "@angular/common": "^7.2.13",
    "@angular/core": "^7.2.13",
    "@angular/forms": "^7.2.13",
    "@angular/http": "^7.2.13",
    "@angular/platform-browser": "^7.2.13",
    "@angular/platform-browser-dynamic": "^7.2.13",
    "@angular/router": "^7.2.13",
    "@ionic-native/splash-screen": "^5.4.0",
    "@ionic-native/status-bar": "^5.4.0",
    "@ionic/angular": "^4.3.0",
    "@mauron85/cordova-plugin-background-geolocation": "3.0.3",
    "cordova-android": "8.0.0",
    "cordova-browser": "6.0.0",
    "cordova-clipboard": "1.2.1",
    "cordova-ios": "4.5.5",
    "cordova-plugin-camera": "4.0.3",
    "cordova-plugin-device": "2.0.2",
    "cordova-plugin-file": "6.0.1",
    "cordova-plugin-file-transfer": "1.7.1",
    "cordova-plugin-filepath": "1.5.1",
    "cordova-plugin-geolocation": "4.0.1",
    "cordova-plugin-googlemaps": "git+https://github.com/mapsplugin/cordova-plugin-googlemaps.git#multiple_maps",
    "cordova-plugin-ionic-keyboard": "^2.0.5",
    "cordova-plugin-ionic-webview": "^3.0.0",
    "cordova-plugin-mauron85-background-geolocation": "^3.0.1",
    "cordova-plugin-network-information": "2.0.1",
    "cordova-plugin-splashscreen": "5.0.2",
    "cordova-plugin-statusbar": "2.4.2",
    "cordova-plugin-whitelist": "1.3.3",
    "cordova-windows": "4.4.2",
    "core-js": "^2.5.4",
    "info.protonet.imageresizer": "0.1.1",
    "ionic-plugin-keyboard": "2.2.1",
    "zone.js": "~0.8.29"
},
"devDependencies": {
    "@angular-devkit/architect": "~0.12.3",
    "@angular-devkit/build-angular": "^0.13.8",
    "@angular-devkit/core": "~7.2.3",
    "@angular-devkit/schematics": "~7.2.3",
    "@angular/cli": "^7.3.8",
    "@angular/compiler": "^7.2.13",
    "@angular/compiler-cli": "^7.2.13",
    "@angular/language-service": "^7.2.13",
    "@fortawesome/angular-fontawesome": "^0.3.0",
    "@fortawesome/fontawesome-free": "^5.8.1",
    "@fortawesome/fontawesome-svg-core": "^1.2.17",
    "@fortawesome/free-brands-svg-icons": "^5.8.1",
    "@fortawesome/free-regular-svg-icons": "^5.8.1",
    "@fortawesome/free-solid-svg-icons": "^5.8.1",
    "@ionic-native/background-geolocation": "^5.4.0",
    "@ionic-native/camera": "^5.5.1",
    "@ionic-native/clipboard": "^5.4.0",
    "@ionic-native/core": "^5.0.0",
    "@ionic-native/file": "^5.5.1",
    "@ionic-native/file-path": "^5.5.1",
    "@ionic-native/geolocation": "^5.4.0",
    "@ionic-native/google-maps": "^5.0.0-beta.27",
    "@ionic-native/image-resizer": "^5.5.1",
    "@ionic-native/keyboard": "^5.4.0",
    "@ionic-native/network": "^5.6.0",
    "@ionic-native/transfer": "^3.14.0",
    "@ionic/angular-toolkit": "~1.4.0",
    "@ionic/app-scripts": "^3.2.3",
    "@ngx-translate/core": "^11.0.1",
    "@ngx-translate/http-loader": "^4.0.0",
    "@types/jasmine": "~2.8.8",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "~10.14.2",
    "codelyzer": "~4.5.0",
    "cordova": "^8.1.2",
    "ionic4-rating": "^1.0.9",
    "jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~3.1.4",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~1.1.2",
    "karma-jasmine-html-reporter": "^0.2.2",
    "node-sass": "^4.12.0",
    "protractor": "~5.4.0",
    "rxjs": "^6.5.2",
    "rxjs-compat": "^6.4.0",
    "ts-node": "~8.0.0",
    "tslint": "~5.12.0",
    "typescript": "~3.1.6"
},
"description": "Test",
"cordova": {
    "platforms": [
        "windows",
        "browser"
    ],
    "plugins": {
        "cordova-plugin-geolocation": {
            "GEOLOCATION_USAGE_DESCRIPTION": ""
        },
        "cordova-plugin-whitelist": {},
        "cordova-plugin-statusbar": {},
        "cordova-plugin-device": {},
        "cordova-plugin-splashscreen": {},
        "cordova-plugin-ionic-webview": {
            "ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+"
        },
        "cordova-plugin-ionic-keyboard": {},
        "cordova-clipboard": {},
        "cordova-plugin-mauron85-background-geolocation": {
            "GOOGLE_PLAY_SERVICES_VERSION": "11+",
            "ANDROID_SUPPORT_LIBRARY_VERSION": "26+",
            "ICON": "@mipmap/icon",
            "SMALL_ICON": "@mipmap/icon",
            "ACCOUNT_NAME": "@string/app_name",
            "ACCOUNT_LABEL": "@string/app_name",
            "ACCOUNT_TYPE": "$PACKAGE_NAME.account",
            "CONTENT_AUTHORITY": "$PACKAGE_NAME"
        },
        "cordova-plugin-camera": {},
        "cordova-plugin-file": {},
        "cordova-plugin-file-transfer": {},
        "cordova-plugin-filepath": {},
        "info.protonet.imageresizer": {},
        "cordova-plugin-network-information": {},
        "cordova-plugin-googlemaps": {
            "API_KEY_FOR_ANDROID": "My_Key",
            "API_KEY_FOR_IOS": "My_Key",
            "LOCATION_WHEN_IN_USE_DESCRIPTION": "This app wants to get your location while this app runs only.",
            "LOCATION_ALWAYS_USAGE_DESCRIPTION": "This app wants to get your location always, even this app runs in background."
        }
    }
}
我很感激每一条线索,我真的迷路了。谢谢你的帮助!如果有什么不清楚的地方,请问我,我会尽量解释得更好

编辑:我创建了一个最小的项目来重现这个问题

以下是我(在Mac电脑上)复制的步骤:

在这一点上,当我尝试构建时,它已经给了我错误“GoogleMaps/GoogleMaps.h未找到”(这次我在xcworkspace上)

然后,我在platforms/ios中创建了我的Podfile(以下是它的内容):

最后,我做了一个“吊舱安装”。还是同样的问题,无法建立“GoogleMaps.h”的原因

npm install
npm rebuild node-sass --unsafe-perm
ionic cordova platform add ios
ionic cordova prepare ios
npm install @ionic-native/core@beta
npm install @ionic-native/google-maps@beta
ionic cordova plugin add cordova-plugin-googlemaps#multiple_maps --variable API_KEY_FOR_ANDROID="my android key" --variable API_KEY_FOR_IOS="my IOS key"
DO NOT MODIFY -- auto-generated by Apache Cordova
platform :ios, '8.0'
target 'Bug-Googlemaps-not-installed' do
    project 'Bug-Googlemaps-not-installed.xcodeproj'
    pod 'GoogleMaps', '~> 2.7.0'
end