2017-06-06 24 views
0

我一直坚持使用Google Maps插件for Ionic一段时间。到目前为止,它在Android和iOS上运行得非常好,但是由于我将Ionic 2的应用程序更新为3,所以无法在iOS上构建它。Ionic 3 - 无法在更新后创建Google地图

我已经尝试删除所有npm模块和所有插件和平台,并重新安装它们,我一直在寻找和谷歌搜索解决方案现在几个小时,我开始绝望。在Android中,我没有任何问题构建或运行应用程序。

我使用的Xcode构建应用程序(打开工作区的文件,而不是该项目的),但总有两个相关的错误:

/.../platforms/ios/appname/Plugins/com.googlemaps.ios/GoogleMaps.framework/Headers/GMSPolyline.h:11:9: 'UIKit/UIKIt.h' file not found

这将导致一个错误:

/.../platforms/ios/appname/Plugins/cordova-plugin-googlemaps/GoogleMaps.h:10:9: Could not build module 'GoogleMaps'

这是在config.xml的插件标签的地图:

<plugin name="cordova-plugin-googlemaps" spec="~1.4.0"> 
    <variable name="API_KEY_FOR_ANDROID" value="myapikeyforandroid" /> 
    <variable name="API_KEY_FOR_IOS" value="myapikeyforios" /> 
    <variable name="NSLOCATIONWHENINUSEUSAGEDESCRIPTION" value="Show your location on the map" /> 
    <variable name="NSLOCATIONALWAYSUSAGEDESCRIPTION" value="Trace your location on the map" /> 
</plugin> 

在的package.json我有这些德pendences:

"dependencies": { 
    "@angular/common": "4.1.2", 
    "@angular/compiler": "4.1.2", 
    "@angular/compiler-cli": "4.1.2", 
    "@angular/core": "4.1.2", 
    "@angular/forms": "4.1.2", 
    "@angular/http": "4.1.2", 
    "@angular/platform-browser": "4.1.2", 
    "@angular/platform-browser-dynamic": "4.1.2", 
    "@ionic-native/background-geolocation": "^3.12.1", 
    "@ionic-native/background-mode": "^3.12.1", 
    "@ionic-native/barcode-scanner": "^3.12.1", 
    "@ionic-native/core": "3.11.0", 
    "@ionic-native/geolocation": "^3.12.1", 
    "@ionic-native/google-maps": "^3.12.1", 
    "@ionic-native/local-notifications": "^3.12.1", 
    "@ionic-native/push": "^3.12.1", 
    "@ionic-native/secure-storage": "^3.12.1", 
    "@ionic-native/social-sharing": "^3.12.1", 
    "@ionic-native/splash-screen": "^3.12.1", 
    "@ionic-native/status-bar": "^3.11.0", 
    "@ionic-native/streaming-media": "^3.12.1", 
    "@ionic-native/video-player": "^3.12.1", 
    "@ionic/storage": "2.0.1", 
    "angular2-jwt": "^0.2.3", 
    "ionic-angular": "3.3.0", 
    "ionicons": "3.0.0", 
    "rxjs": "5.1.1", 
    "socket.io-client": "^1.7.2", 
    "sw-toolbox": "3.6.0", 
    "zone.js": "0.8.11" 
    } 

让我知道如果我能提供任何更多的线索......

在此先感谢您的帮助。

编辑:我已经尝试添加UIKit库并重新安装XCode,但没有任何工作。如果我删除谷歌地图插件,应用程序生成就好了,所以它似乎与cordova-plugin-googlemaps相关我正在尝试其他版本以确定这是否是版本问题。

编辑2:更改谷歌地图的版本没有任何影响......

编辑3:我发现this thread,这似乎与此类似,但没有任何回答要么。

回答

0

那么,在尝试了所有可以弥补的解决方案之后,我得出了最简单的结论:不需要UIKit.h导入。所以我刚刚从目录platform/ios/AppName/Plugins/com.googlemaps.ios/GoogleMaps.framework/Headers中的文件GMSTileLayer.h和GMSPolyline.h中删除了行#import <UIKit/UIKIt.h>,现在它工作得很好。我想知道为什么在版本更改之前这没有给出任何错误,因为googlemaps插件版本一直都是一样的。

0

这听起来像你的错误可能类似于在this answer提到的错误。

试试看,并报告!

+0

谢谢!我尝试添加库,但是当我去建立阶段它已经被添加。框架搜索路径也很好,我从不改变任何这种配置。现在我将尝试按照该答案中的建议重新安装XCode。 – Aruk

+0

我已重新安装XCode,再次移除并添加ios平台,然后在再次编译之前单击Product> Clean,但问题仍然存在D: – Aruk