我已经为Ionic的Google插件卡住了一段时间。直到现在,它在安卓和iOS上运行得非常好,但是自从我更新了我的应用程序Ionic 2到3之后,我就不能为iOS构建它了。
我已经尝试删除所有的npm模块,所有的插件和平台,并重新安装他们,我已经寻找和谷歌一个解决方案数小时了,我开始绝望。在android系统中,我构建或运行这个应用程序没有问题。
我正在使用xcode构建应用程序(打开工作区的文件,而不是项目的文件),但是总是有两个相关的错误:
未找到/.../platforms/ios/appname/Plugins/com.googlemaps.ios/GoogleMaps.framework/Headers/GMSPolyline.h:11:9:'UIKit/UIKIt.h‘文件
这将导致下一个错误:
/.../platforms/ios/appname/Plugins/cordova-plugin-googlemaps/GoogleMaps.h:10:9:无法构建模块“GoogleMaps”
这是config.xml上的map插件标记:
<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中,我有以下这些依赖项:
"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-相关,我现在正在尝试其他版本来确定这是否是一个版本问题。
编辑2:更改谷歌地图版本没有任何效果.
编辑3:我找到了this thread,它看起来和这个类似,但也没有任何答案。
发布于 2017-06-13 06:41:37
在尝试了各种解决方案之后,我得出了一个最简单的结论:不需要UIKit.h导入。因此,我刚刚从目录platform/ios/AppName/Plugins/com.googlemaps.ios/GoogleMaps.framework/Headers的GMSTileLayer.h和GMSPolyline.h文件中删除了行#import <UIKit/UIKIt.h>,现在它工作得很好。我想知道为什么在版本更改之前没有出现任何错误,因为googlemaps插件版本总是一样的。
发布于 2017-06-06 13:53:58
听起来您的错误可能类似于this answer中提到的错误。
试一试,报告回来!
发布于 2019-11-11 09:55:09
我也有同样的问题,但我找到了解决办法。问题是原始文件中有一个错误。
#import <UIKit/UIKIt.h> 应该是 #import <UIKit/UIKit.h> ( UIKit.h中的第二个I现在是小写)
在我在GMUGradient.h文件中修复了这个问题之后,Xcode给了我错误,构建运行得很顺利。
https://stackoverflow.com/questions/44389671
复制相似问题