2012-12-22 32 views
21

工作,我已經實現了「獲得的谷歌地圖SDK iOS版」步步谷歌地圖而不是在iPhone模擬器

終於運行模擬器確定沒有發現任何錯誤,但該映射除了標記任何細節。

如示出在畫面:

Screnshot of simulator

此外在底部的輸出具有這樣的信息:

2012年12月23日01:06:59.869 GogleMap [3680:C07 ] GMSZoomTableQuadTree缺少用於> tile類型的根縮放表(mapType:10) 2012-12-23 01:07:00.042 GogleMap [3680:1b03] Google Maps SDK for iOS版本:1.0.1.1154 2012-12-23 01: 07:00.375 GogleMap [3680:c07] ClientParametersRequest失敗,3次嘗試> re maining。錯誤提前域= DASHConnectionError代碼= 100「的操作無法完成。 (DASHConnectionError錯誤100)」

請幫助和感謝。

+0

您是否嘗試過運行在實際設備上,看看能否做任何事情? – MacN00b

+0

嘿,你是怎麼走的?我在控制檯申請了API密鑰訪問權限,但沒有得到任何回覆,除此之外,如步驟中所述,您在哪裏找到了「Google Maps SDK for iOS」以在服務中啓用它。 –

+0

需要多少時間才能顯示地圖。 –

回答

8

@ user1924208我有同樣的問題。我已經孜孜不倦地尋找答案,不幸的是我認爲我們運氣不佳。 Google API控制檯可能會向您顯示Google Maps v.3的API密鑰,該密鑰不是Google Maps iOS API密鑰。因此,當您將它用作API密鑰時,驗證請求將始終失敗。

看起來好像他們沒有爲任何原因發佈iOS版本的許多API密鑰。儘管令人沮喪,但您只需等待,直到您收到來自他們的電子郵件(不確定何時會這樣...)。

您可以證實這一點,因爲用任何隨機字符串替換當前API密鑰將產生相同的結果。順便說一下,這也會在模擬器和真實設備上產生相同的結果,我已經測試過。

更新

我剛剛從谷歌地圖,我的API密鑰現在可用的電子郵件。我用GMSServices切換出了MKMapKit,並且一切正常。看起來他們現在更願意釋放API密鑰,所以希望你很快就能獲得你的密鑰。

+0

你是如何按照步驟操作的?我在控制檯申請了API密鑰訪問權限,但沒有得到任何回覆,除此之外,如步驟中所述,您在哪裏找到了「Google Maps SDK for iOS」以在服務中啓用它。 –

+0

我也沒有找到「Google Maps SDK for iOS」鍵。這似乎是在您的Google API控制檯與他們聯繫並獲得訪問權限時解鎖的。 – manderson

+0

是啊..我也這麼認爲!奇怪 –

-1

現在蘋果刪除谷歌地圖和添加蘋果地圖,。

檢查下列事項:

  1. 減少在地圖視圖縮放。

  2. iOS使用什麼版本?如果你使用iOS 6的谷歌地圖不工作蘋果地圖必須工作。

  3. 某些時候模擬器不支持某些核心功能主義者懇請檢查設備的功能。

  4. 確保代理和數據源必須設置。

謝謝。

+0

我使用iOS 6.0模擬器,谷歌地圖在他們的應用程序,以及許多不同的應用程序以及iOS 6.0的工程確定,所以這不是重點這裏。 我會繼續嘗試找出問題所在。我可能會再次經歷這些步驟,看看會發生什麼。 –

0

看起來你還沒有指定一個有效的API密鑰。你是否有一個?

0

此錯誤是指示用於初始化谷歌地圖的鍵無效的:

[GMSServices provideAPIKey:@"YOUR_API_KEY"]; 

的關鍵是由谷歌發出專門針對iOS的SDK(顯然只有少數選民) Google Maps SDK v2和v3的密鑰在Apple上無法使用。

確認錯誤確實是由無效鍵導致的一種方法是通過顯示圖釘。圖釘不需要有效的鍵,所以它將在空的地圖視圖對象上可見。對「入門」頁面https://developers.google.com/maps/documentation/ios/start#add_a_map中的示例進行編碼應導致應用程序顯示空白地圖視圖(背景爲黃色,中心爲圖釘)。

保證引腳是可見的,最好的辦法是使用完全相同的攝像頭和標記都相同的座標,看到的片段:

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:43.65 
                 longitude:-79.45 
                  zoom:6]; 

mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera]; 

mapView_.myLocationEnabled = YES; 
self.view = mapView_; 

GMSMarkerOptions *markerOptions = [[GMSMarkerOptions alloc] init]; 
markerOptions.position = CLLocationCoordinate2DMake(43.65, -79.45); 
markerOptions.title = @"Greater Toronto Area"; 

[mapView_ addMarkerWithOptions:markerOptions]; 
5

擡起頭,確保你已經還啓用了「 Google地圖SDK for iOS「。

我得到一個類似的錯誤,直到我意識到我只生成了API密鑰但忘記啓用該服務。解決了我的問題。

SDKDemos[160:907] ClientParametersRequest failed, 0 attempts remaining (0 vs 5). 
Error Domain=com.google.Maps.GMSDASHConnection Code=100 
"The operation couldn’t be completed. (com.google.Maps.GMSDASHConnection error 100.)" 
45

解決:我想我們都跳過在這個過程中一個小,但非常重要的一步..

要開始,啓用谷歌地圖SDK在谷歌API控制檯iOS版服務以及其他Google API。

enter image description here

一旦啓用了GoogleMap的SDK適用於iOS在Google APIs Console,您的應用程序將正確加載在下次運行的瓷磚。祝你好運!

+0

我真的很愛你。 –

2

我有同樣的問題。 我認爲問題在於我的項目「捆綁標識符」與我的Google API控制檯中的捆綁標識符不同。

因此,我爲我的Google API控制檯添加了更多捆綁銷售許可證:從項目導航器中選擇您的項目本身,然後選擇您的應用程序的目標。在標籤摘要,請記住您的字符串在捆綁標識符

轉到Google APIs控制檯頁面,在控制檯中選擇API Access窗格,找到iOS應用程序部分的關鍵字,選擇編輯允許的iOS應用程序...並添加您上面記得的捆綁銷售商。重新運行您的項目並完成!

1

我有同樣的問題,然後我去了谷歌控制檯,並點擊「生成新密鑰」和新的關鍵工作!

0

另一個領導! 確保您的應用的捆綁包標識符與Google API控制檯中「iOS應用」字段中定義的捆綁包ID相匹配。

0

確保你沒有帶改變了你的

[捆綁標識符]

的應用。它應該與您在生成API密鑰時使用的匹配。

0

得到了同樣的問題。當然,一切正確。 而事情是,你的API密鑰需要一些時間來工作(也許有關它的信息通過谷歌服務器傳播,這意味着你最近的服務器還不知道新的API密鑰)。

因此,在API密鑰創建錯誤停止後的5分鐘內,我完全可以使用API​​密鑰。 (注意,我沒有收到谷歌的任何電子郵件)。

3

我有一個類似的問題,但我確信API密鑰是好的,因爲SDK包中的示例項目與我在實際應用中使用的密鑰 - 包ID對一起工作。如果您的API密鑰似乎不合法,則最新的(1.2)版本的sdk實際上會註銷一條警告。 未能顯示地圖的原因是我沒有在項目設置的目標摘要選項卡中填寫內部編號。事實證明,您絕對需要在Info.plist中設置CFBundleVersion以使Google地圖可以正常工作,否則地圖會保持空白,不會顯示任何錯誤或警告,甚至不會顯示Web請求。

+1

即使它已經在那裏,我也必須更改內部版本號。然後它工作。隨你。謝謝! – cloudsurfin

+0

謝謝!這讓我瘋狂!我的信息plist中的CFBundleVersion沒有正確填充。 – Tyler

0

我解決了這個問題,如下所示

  1. 去谷歌地圖API控制檯。 (舊) 已啓用服務爲Google Maps SDK for iOS和Google Street View Image API
  2. 我禁用Google街景圖片API
  3. 然後,不再輸出錯誤
0

對我來說,這是因爲我的應用程序的包標識符已被更改。爲新的捆綁包標識符獲取新的API密鑰後,它將重新開始工作。

0

首先是讓你的鑰匙是正確的。檢查您是否已啓用適用於iOS的Google地圖SDK。比在設備上運行應用程序,而不是模擬器。

0

重要:如果您想從iOS設備谷歌地圖練習則只需下載GoogleMaps.framework

不知不覺我已經下載GoogleMapsM4B.framework和麪臨的問題類似「你的鑰匙可能是軟件包ID無效:com.company.example

如果你想使用GoogleMapsM4B.framework在你的項目,然後 1 。您應該在企業支持門戶網站(Google網站)上申請支持。 2.您必須在Google控制檯網站上啓用谷歌地圖移動SDK for Work而不是Google Maps SDK for iOS

櫃面,如果你想使用GoogleMaps.framework沒有GoogleMapsM4B(地圖企業版),那麼你不必請求支持中心,你只需要啓用谷歌地圖SDK iOS版谷歌的控制檯網站。

您可以找到Google Maps SDK for iOS和Google Maps Mobile SDK Work(M4B)之間的主要區別。

和進口的GoogleMaps/GoogleMaps.h到您的文件,並通過您的API密鑰以下方法:

[GMSServices provideAPIKey:@「Your API Key「]; 

(或)

如果您有有效的許可證,然後下載GoogleMapsM4B.framework和進口GoogleMapsM4B /GoogleMaps.h添加到您的文件並將api傳遞給相同的方法[GMSServices provideAPIKey:@「Your API Key「] 但我猜你只能在購買許可證後才能獲得此密鑰。

所以,我所面臨的主要問題是...而不是下載GoogleMaps.framework我已經下載GoogleMapsM4B.framework並添加到我的項目。每次我運行我的項目時,它給了我一個錯誤,說「您的密鑰可能對您的包ID無效:com.example.sampleapp」

現在我的項目工作正常。

1

在此從不同的角度跟進:

有沒有在谷歌地圖框架,防止地圖從能夠被實例化/創造更高版本的一個bug /加入上海華如果應用程序是在背景。

當您這樣做時,除左下方的Google徽標外,最終的地圖將顯示爲完全空白。原因是因爲OS在後臺運行時不允許OpenGL渲染;他們只需重新啓動渲染器即可預先渲染。

谷歌已經終於固定此(大約一年後),所以請升級到最新和最大。

如果你使用谷歌的業務:

pod 'Google-Maps-iOS-SDK-for-Business', '~> 1.11.1' 

這個問題的攝製是here舊版本。

視覺攝製:

OpenGL Bug

+0

免費和商業計劃有不同的SDK嗎?我在問,因爲我使用我的個人賬戶爲我的公司開始了一個項目,直到購買通過與Google簽訂的服務合同。 一旦他們這樣做,我得到了我們公司的關鍵,並將其放入應用程序。在模擬一切正常,但在設備上,我得到了死亡的棕色屏幕。我記錄了從provideAPIKey返回的bool,每次都是。控制檯中的包是正確的。我可以使用Directions和GeoCode服務,但無法顯示地圖。 – PruitIgoe

+0

@PruitIgoe是的,對於普通用戶和商業用戶有不同的SDK,並且有不同的網站來設置每個網站 – iwasrobbed

+1

謝謝,我終於明白了。我不得不說,我完全不瞭解Google開發者控制檯的UI/UX。它實際上並不直觀,只是一種痛苦,四處遊覽。 – PruitIgoe

0

儘量不要節省任何常量API密鑰。直接通過價值。如果它不工作嘗試重新生成API鍵位映射將肯定

MapServices.ProvideAPIKey ("AIzaSyAnxfhuAwEqdVhQpoUkGFZpsBukOSXVFr0"); 

編碼快樂:)工作