2017-06-06 23 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