אחרי שתפעילו את החיוב ותצרו מפתח API, תוכלו להגדיר את ה-Xcode שבו אתם משתמשים כדי לפתח את האפליקציה.
נתוני הגרסה זמינים לכל גרסה גרסה חדשה.
שלב 1: מתקינים את התוכנה הנדרשת
כדי לבנות פרויקט באמצעות SDK של מפות ל-iOS, צריך להוריד ולהתקין:
- Xcode גרסה 15.0 ואילך
שלב 2: יצירת פרויקט Xcode והתקנה של Maps SDK ל-iOS
מנהל חבילות SWIFT
ניתן להתקין את ה-SDK של מפות Google ל-iOS דרך SWIFT Package Manager. כדי להוסיף את ה-SDK, צריך לוודא שיש לך הוסרה כל יחסי התלות הקיימים של Maps SDK עבור iOS.
כדי להוסיף את ה-SDK לפרויקט חדש או קיים:
-
פותחים את ה-Xcode
project
אוworkspace
, ועוברים אל File > (קובץ >) הוספת יחסי תלות של חבילה. - מזינים את הכתובת 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, עוברים אל 'File >' חבילות > יש לעדכן לגרסאות האחרונות של החבילה".
- כדי לאמת את ההתקנה, עוברים לקטע Package Dependencies של Project Navigator כדי לאמת את החבילה והגרסה שלה.
כדי להסיר יחסי תלות קיימים של Maps 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 פרויקטים של קקאו.
אם עדיין לא התקנתם את הכלי 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
ומוסיפים את יחסי התלות עם גרסאות. הנה דוגמה שכוללת את התלות הדרושה SDK של מפות ל-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 (קישור בינארי לספריות), צריך להוסיף את הפרטים הבאים:
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. בקטע Linking - General -> (קישור - כללי ->) מקשר אחר סימונים, מוסיפים את
-ObjC
ל'ניפוי באגים' ו'Release'. אם הקריטריונים האלה ההגדרות לא מופיעות, אפשר לשנות את המסנן בסרגל הגדרות Build מבסיסי להכול. -
כדי להתקין את Places SDK ל-iOS XCFramework: איך מתחילים עם Places SDK ל-iOS.
שלב 3: בודקים את קובץ מניפסט הפרטיות של Apple
Apple דורשת פרטים לגבי הפרטיות של אפליקציות ב-App Store. עדכונים ומידע נוסף זמינים בדף פרטי הפרטיות של Apple App Store.
קובץ מניפסט הפרטיות של Apple כלול בחבילת המשאבים של ה-SDK. כדי לוודא שקובץ מניפסט הפרטיות נכלל וכדי לבדוק את התוכן שלו, יש ליצור ארכיון של האפליקציה ולהפיק דוח פרטיות מהארכיון.
שלב 4: מוסיפים את מפתח ה-API לפרויקט
בקטע קבלת מפתח API, שיצרה מפתח API לאפליקציה שלך. עכשיו מוסיפים את המפתח הזה לפרויקט Xcode.
בדוגמאות הבאות, מחליפים את YOUR_API_KEY
במפתח ה-API שלכם.
Swift
מוסיפים את מפתח ה-API ל-AppDelegate.swift
באופן הבא:
- מוסיפים את הצהרת הייבוא הבאה:
import GoogleMaps
- צריך להוסיף את הפריטים הבאים ל
application(_:didFinishLaunchingWithOptions:)
באמצעות מפתח ה-API:GMSServices.provideAPIKey("YOUR_API_KEY")
- אם השתמשת גם ב-Places API, עליך להוסיף את המפתח שוב כפי שמוצג כאן:
GMSPlacesClient.provideAPIKey("YOUR_API_KEY")
Objective-C
מוסיפים את מפתח ה-API ל-AppDelegate.m
באופן הבא:
- מוסיפים את הצהרת הייבוא הבאה:
@import GoogleMaps;
- צריך להוסיף את הפריטים הבאים ל
application:didFinishLaunchingWithOptions:
באמצעות מפתח ה-API:[GMSServices provideAPIKey:@"YOUR_API_KEY"];
- אם השתמשת גם ב-Places API, עליך להוסיף את המפתח שוב כפי שמוצג כאן:
[GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
שלב 5: הוספת מפה
Swift
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
#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, אתם יכולים ליצור ולהפעיל אפליקציות. SDK לניווט ב-iOS מספק הרבה מדריכים ואפליקציות לדוגמה שיכולים לעזור לכם להתחיל בעבודה בקלות. פרטים נוספים זמינים במאמרים הבאים: