אחרי שתפעילו את החיוב ותצרו מפתח API, תוכלו להגדיר את פרויקט ה-Xcode שבו אתם משתמשים כדי לפתח את האפליקציה.
נתוני הגרסה זמינים לכל גרסה.
שלב 1: מתקינים את התוכנה הנדרשת
כדי לבנות פרויקט באמצעות SDK של מפות ל-iOS, צריך להוריד ולהתקין:
- Xcode גרסה 15.0 ואילך
שלב 2: יצירת פרויקט Xcode והתקנה של Maps SDK ל-iOS
מנהל חבילות SWIFT
ניתן להתקין את ה-SDK של מפות Google ל-iOS דרך Swift Package Manager. כדי להוסיף את ה-SDK, צריך לוודא שהסרת את כל ה-SDK הקיים של מפות Google ליחסי תלות של iOS.
כדי להוסיף את ה-SDK לפרויקט חדש או קיים:
-
פותחים את ה-Xcode
project
אוworkspace
ועוברים אל 'קובץ' > 'הוספת יחסי תלות של חבילה'. - מזינים את הכתובת https://github.com/googlemaps/ios-maps-sdk בתור כתובת ה-URL, מקישים על Enter כדי למשוך את החבילה ולוחצים על 'הוספת חבילה'.
-
כדי להתקין
version
ספציפי, צריך להגדיר את השדה כלל תלות לאחת מהאפשרויות שמבוססות על גרסה. בפרויקטים חדשים, מומלץ לציין את הגרסה האחרונה ולהשתמש באפשרות 'גרסה מדויקת'. בסיום, לוחצים על 'הוספת חבילה'. -
בחלון Choose Package Products, מוודאים ש-
GoogleMaps
(בגרסאות שקודמות ל-9.0.0, מוודאים שהתכונהGoogleMaps
,GoogleMapsBase
ו-GoogleMapsCore
) תתווסף ליעדmain
שהגדרתם. בסיום, לוחצים על 'הוספת חבילה'. -
כדי לבדוק את ההתקנה, צריך לעבור לחלונית
General
של היעד. ב-Frameworks, ספריות ותוכן מוטמע אתם אמורים לראות את החבילות המותקנות. אפשר גם לעיין בקטע 'יחסי תלות של חבילה' בדף 'Project Navigator' כדי לאמת את החבילה ואת הגרסה שלה.
כדי לעדכן את package
בפרויקט קיים:
אם משדרגים מגרסה קודמת מ-9.0.0, צריך להסיר את יחסי התלות הבאים:
GoogleMapsBase
,GoogleMapsCore
ו-GoogleMapsM4B
לאחר השדרוג. אין להסיר את התלות שלGoogleMaps
. למידע נוסף, ראו את נתוני הגרסה של גרסה 9.0.0.בהגדרות האישיות של פרויקט Xcode, מחפשים את Frameworks, ספריות ותוכן מוטמע. משתמשים בסימן המינוס(-) כדי להסיר את המסגרת הבאה:
GoogleMapsBase
(רק לשדרוגים מגרסאות מוקדמות יותר מ-9.0.0)GoogleMapsCore
(רק לשדרוגים מגרסאות מוקדמות יותר מ-9.0.0)GoogleMapsM4B
(רק לשדרוגים מגרסאות מוקדמות יותר מ-9.0.0)
- מ-Xcode, עוברים אל 'קובץ' > 'חבילות' > 'עדכון לגרסאות האחרונות של החבילה'.
- כדי לאמת את ההתקנה, עוברים לקטע Package Dependencies של Project Navigator כדי לאמת את החבילה ואת הגרסה שלה.
כדי להסיר יחסי תלות קיימים של SDK של מפות ל-iOS שנוספו באמצעות
CocoaPods
, יש לבצע את השלבים הבאים:
- סוגרים את סביבת העבודה של Xcode. פותחים את הטרמינל ומריצים את הפקודה הבאה:
sudo gem install cocoapods-deintegrate cocoapods-clean pod deintegrate pod cache clean --all
-
מסירים את
Podfile
,Podfile.resolved
ואת ה-Xcodeworkspace
אם אתם לא משתמשים בהם לכל מטרה אחרת מלבד CocoaPods.
-
בהגדרות האישיות של פרויקט Xcode, מחפשים את Frameworks, ספריות ותוכן מוטמע. משתמשים בסימן המינוס(-) כדי להסיר את המסגרת הבאה:
GoogleMaps
GoogleMapsBase
(רק להתקנת אפליקציות שקודמות לגרסה 9.0.0)GoogleMapsCore
(רק להתקנת אפליקציות שקודמות לגרסה 9.0.0)GoogleMapsM4B
(רק להתקנת אפליקציות שקודמות לגרסה 9.0.0)
-
מהספרייה ברמה העליונה של פרויקט Xcode, מסירים את החבילה
GoogleMaps
.
CocoaPods
ה-SDK של מפות Google ל-iOS זמין כקבוצת CocoaPods. CocoaPods הוא מנהל יחסי תלות בקוד פתוח לפרויקטים של Swift ו-Objective-C Cocoa.
אם עדיין לא התקנתם את הכלי CocoaPods, תוכלו להתקין אותו ב-macOS על ידי הרצת הפקודה הבאה מהטרמינל. לפרטים נוספים, אפשר לעיין במדריך לתחילת העבודה של CocoaPods.
sudo gem install cocoapods
יוצרים Podfile
ל-SDK של מפות Google ל-iOS ומשתמשים בו כדי להתקין את ה-API ואת יחסי התלות שלו:
- אם עדיין לא יצרת פרויקט Xcode, עליך ליצור פרויקט עכשיו ולשמור אותו במחשב המקומי. אם זו הפעם הראשונה שאתם משתמשים בפיתוח ל-iOS:
- יוצרים פרויקט חדש.
- בוחרים את התבנית iOS > אפליקציה.
- במסך אפשרויות הפרויקט:
- מזינים את Project Name (שם הפרויקט).
- מתעדים את הערך בשדה Bundle ID (מזהה החבילה). אפשר להשתמש בערך הזה כדי להגביל את מפתח ה-API בהמשך.
- מגדירים את הפרויקט Interface כ-Storyboard.
- מגדירים את Language כ-Swift או Objective-C.
- יוצרים קובץ בשם
Podfile
בספריית הפרויקט. הקובץ הזה מגדיר את יחסי התלות של הפרויקט. - עורכים את
Podfile
ומוסיפים את יחסי התלות עם versions שלהם. לפניכם דוגמה שכוללת את התלות הדרושה ב-SDK של מפות Google ל-iOS:source 'https://github.com/CocoaPods/Specs.git' platform :ios, '15.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GoogleMaps', '8.4.0' end
חשוב להקפיד להריץ אתpod outdated
באופן קבוע כדי לזהות אם יש גרסה חדשה יותר כדי לוודא שאתם תמיד משתמשים בגרסה העדכנית. במקרה הצורך, משדרגים לגרסה העדכנית. - שומרים את
Podfile
. פותחים טרמינל ועוברים לספרייה שמכילה את
Podfile
:cd <path-to-project>
מריצים את הפקודה
pod install
. הפעולה הזו תתקין את ממשקי ה-API שצוינו ב-Podfile
, יחד עם כל יחסי התלות שעשויים להיות להם.pod install
סוגרים את Xcode ואז פותחים (לחיצה כפולה) את קובץ
.xcworkspace
של הפרויקט כדי להפעיל את Xcode. מהשלב הזה ואילך, צריך להשתמש בקובץ.xcworkspace
כדי לפתוח את הפרויקט.
כדי לעדכן את ה-API לפרויקט קיים:
- פותחים טרמינל ונכנסים לספריית הפרויקט שמכילה את
Podfile
. - מריצים את הפקודה
pod update
. הפעולה הזו תעדכן את כל ממשקי ה-API שצוינו ב-Podfile
לגרסה האחרונה.
התקנה ידנית
במדריך הזה מוסבר איך להוסיף לפרויקט באופן ידני את ה-XCFrameworks שמכיל את ה-SDK של מפות Google ל-iOS, ולקבוע את הגדרות ה-build ב-Xcode. XCFramework היא חבילה בינארית שאפשר להשתמש בה במספר פלטפורמות, כולל מכונות שמשתמשות ב-Apple silicon.- מורידים את הקבצים הבינאריים וקובצי המשאבים הבאים של ה-SDK:
- מחלצים את הקבצים כדי לגשת ל-XCFrameworks ולמשאבים.
- אם עדיין לא יצרת פרויקט Xcode, עליך ליצור פרויקט עכשיו ולשמור אותו במחשב המקומי. אם זו הפעם הראשונה שאתם משתמשים בפיתוח ל-iOS:
- יוצרים פרויקט חדש.
- בוחרים את התבנית iOS > אפליקציה.
- במסך אפשרויות הפרויקט:
- מזינים את Project Name (שם הפרויקט).
- מתעדים את הערך בשדה Bundle ID (מזהה החבילה). אפשר להשתמש בערך הזה כדי להגביל את מפתח ה-API בהמשך.
- מגדירים את הפרויקט Interface כ-Storyboard.
- מגדירים את Language כ-Swift או Objective-C.
-
פותחים את הכרטיסייה כללי. גוררים את ה-XCFrameworks הבאות לפרויקט בקטע Frameworks, ספריות ותוכן מוטמע. חשוב לבחור באפשרות Do Not Embed (ללא הטמעה) לכל XCFramework:
GoogleMaps.xcframework
GoogleMapsBase.xcframework
GoogleMapsCore.xcframework
-
מעתיקים את
GoogleMaps.bundle
מ-GoogleMapsResources שהורדתם לספרייה ברמה העליונה של פרויקט ה-Xcode. כשמופיעה ההנחיה, חשוב לבחור באפשרות העתקת פריטים לתיקייה של קבוצת היעד. - בוחרים את הפרויקט מ-Project Navigator ובוחרים את יעד האפליקציה.
-
פותחים את הכרטיסייה שלבי הבנייה של היעד של האפליקציה.
בתוך Link Binary with Libraries (קישור Binary with Libraries) מוסיפים את ה-frameworks והספריות הבאות:
Accelerate.framework
Contacts.framework
CoreData.framework
CoreGraphics.framework
CoreImage.framework
CoreLocation.framework
CoreTelephony.framework
CoreText.framework
GLKit.framework
ImageIO.framework
libc++.tbd
libz.tbd
Metal.framework
OpenGLES.framework
(רק אם משתמשים ב-OpenGL)QuartzCore.framework
SystemConfiguration.framework
UIKit.framework
-
בוחרים את הפרויקט ולא יעד ספציפי ופותחים את הכרטיסייה Build Settings. בקטע Linking - General -> Other Linker Banners (קישור - כללי -> אחרים) מוסיפים את
-ObjC
ל-Debug ול-Release (שחרור). אם ההגדרות האלה לא מופיעות, משנים את המסנן בסרגל Build Settings (הגדרות Build) מ-Basic ל-All. -
כדי להתקין את Places SDK ל-iOS XCFramework, ראו תחילת העבודה עם Places SDK ל-iOS.
שלב 3: בודקים את קובץ מניפסט הפרטיות של Apple
Apple דורשת פרטים לגבי הפרטיות של אפליקציות ב-App Store. עדכונים ומידע נוסף זמינים בדף פרטי הפרטיות של Apple App Store.
קובץ מניפסט הפרטיות של Apple כלול בחבילת המשאבים של ה-SDK. כדי לוודא שקובץ מניפסט הפרטיות נכלל וכדי לבדוק את התוכן שלו, יש ליצור ארכיון של האפליקציה ולהפיק דוח פרטיות מהארכיון.
שלב 4: מוסיפים את מפתח ה-API לפרויקט
בקטע Get an API key (קבלת מפתח API), יצרתם מפתח API לאפליקציה. עכשיו עליכם להוסיף את המפתח הזה לפרויקט Xcode שלכם.
בדוגמאות הבאות, מחליפים את YOUR_API_KEY
במפתח ה-API שלכם.
Swift
מוסיפים את מפתח ה-API ל-AppDelegate.swift
באופן הבא:
- מוסיפים את הצהרת הייבוא הבאה:
import GoogleMaps
- מוסיפים את הקוד הבא ל-method
application(_:didFinishLaunchingWithOptions:)
באמצעות מפתח ה-API:GMSServices.provideAPIKey("YOUR_API_KEY")
- אם השתמשת גם ב-Places API, עליך להוסיף את המפתח שוב כפי שמוצג כאן:
GMSPlacesClient.provideAPIKey("YOUR_API_KEY")
Objective-C
מוסיפים את מפתח ה-API ל-AppDelegate.m
באופן הבא:
- מוסיפים את הצהרת הייבוא הבאה:
@import GoogleMaps;
- מוסיפים את הקוד הבא ל-method
application:didFinishLaunchingWithOptions:
באמצעות מפתח ה-API:[GMSServices provideAPIKey:@"YOUR_API_KEY"];
- אם השתמשת גם ב-Places API, עליך להוסיף את המפתח שוב כפי שמוצג כאן:
[GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
שלב 5: הוספת מפה
Swift
/* * Copyright 2020 Google Inc. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this * file except in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF * ANY KIND, either express or implied. See the License for the specific language governing * permissions and limitations under the License. */ import UIKit import GoogleMaps class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. // Create a GMSCameraPosition that tells the map to display the // coordinate -33.86,151.20 at zoom level 6. let options = GMSMapViewOptions() options.camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0) options.frame = self.view.bounds let mapView = GMSMapView(options: options) self.view.addSubview(mapView) // Creates a marker in the center of the map. let marker = GMSMarker() marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20) marker.title = "Sydney" marker.snippet = "Australia" marker.map = mapView } }
Objective-C
/* * Copyright 2020 Google Inc. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this * file except in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF * ANY KIND, either express or implied. See the License for the specific language governing * permissions and limitations under the License. */ #import "ViewController.h" #import <GoogleMaps/GoogleMaps.h> @interface ViewController() @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. // Create a GMSCameraPosition that tells the map to display the // coordinate -33.86,151.20 at zoom level 6. GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683 longitude:151.2086 zoom:6]; options.frame = self.view.bounds; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; [self.view addSubview:mapView]; // Creates a marker in the center of the map. GMSMarker *marker = [[GMSMarker alloc] init]; marker.position = CLLocationCoordinate2DMake(-33.86, 151.20); marker.title = @"Sydney"; marker.snippet = @"Australia"; marker.map = mapView; } @end
שלב 5 (אופציונלי): מצהירים על הסכימות של כתובות ה-URL שבהן נעשה שימוש ב-API
החל מ-iOS 9 ו-Xcode 7, אפליקציות יכולות להצהיר על הסכימות של כתובות ה-URL שהן מתכוונים לפתוח, על ידי ציון הסכימות בקובץ Info.plist
של האפליקציה. ה-SDK של מפות Google ל-iOS פותח את אפליקציית מפות Google לנייד כשהמשתמש לוחץ על הלוגו של Google במפה, ולכן האפליקציה יכולה להצהיר על סכימות כתובת ה-URL הרלוונטיות.
כדי להצהיר על הסכימות של כתובות URL שבהן נעשה שימוש ב-SDK של מפות Google ל-iOS, צריך להוסיף את השורות הבאות ל-Info.plist
:
בצילום המסך הבא מוצגת ההגדרה בממשק המשתמש של Xcode:
בלי ההצהרה שלמעלה, כשהמשתמשים מקישים על הלוגו של Google במפה, עלולות להתרחש השגיאות הבאות:
- -canOpenURL: נכשל בכתובת האתר: "comgooglemaps://" - שגיאה: "האפליקציה הזו לא מורשית לשלוח שאילתות לסכמה comgooglemaps"
- -canOpenURL: נכשל בכתובת האתר: "googlechromes://" - שגיאה: "האפליקציה הזו אינה מורשה לשלוח שאילתות לסכמה googlechromes"
כדי למנוע את השגיאות האלה, צריך להוסיף את ההצהרה אל Info.plist
.
מה השלב הבא
עכשיו, אחרי שיש לכם מפתח API ופרויקט Xcode, אתם יכולים ליצור ולהפעיל אפליקציות. ב-Navigation SDK ל-iOS יש הרבה מדריכים ואפליקציות לדוגמה שיעזרו לכם להתחיל. פרטים נוספים זמינים במאמרים הבאים: