הגדרת פרויקט ב-Xcode

אחרי שתפעילו את החיוב ותצרו מפתח API, תוכלו להגדיר את ה-Xcode שבו אתם משתמשים כדי לפתח את האפליקציה.

נתוני הגרסה זמינים לכל גרסה גרסה חדשה.

שלב 1: מתקינים את התוכנה הנדרשת

כדי לבנות פרויקט באמצעות Navigation SDK ל-iOS, צריך להוריד ולהתקין:

  • Xcode גרסה 15.0 ואילך

שלב 2: יצירת פרויקט Xcode והתקנה של Navigation SDK

מנהל חבילות SWIFT

ניתן להתקין את Navigation SDK דרך SWIFT Package Manager. כדי להוסיף את ה-SDK, צריך לוודא שיש לך הוסרה כל יחסי התלות הקיימים של Navigation SDK.

כדי להוסיף את ה-SDK לפרויקט חדש או קיים:

  1. פותחים את ה-Xcode project או workspace, ועוברים אל File > (קובץ >) הוספת יחסי תלות של חבילה.
  2. מזינים את הכתובת https://github.com/googlemaps/ios-navigation-sdk בתור כתובת ה-URL ומקישים על Enter. כדי למשוך את החבילה, וללחוץ על "הוספת חבילה".
  3. כדי להתקין version ספציפי, צריך להגדיר את השדה כלל תלות לאחד אפשרויות שמבוססות על גרסאות. בפרויקטים חדשים, מומלץ לציין את הגרסה האחרונה באמצעות "גרסה מדויקת" כאפשרות. בסיום, לוחצים על 'הוספת חבילה'.
  4. בחלון Choose Package Products, מוודאים שהתוסף GoogleNavigation יתווסף אל היעד שהגדרת ל-main. בסיום, לוחצים על 'הוספת חבילה'.
  5. כדי לבדוק את ההתקנה, צריך לעבור לחלונית General של היעד. ב-Frameworks, ספריות ותוכן מוטמע אתם אמורים לראות את החבילות המותקנות. אפשר גם לראות את העמודה 'יחסי תלות של חבילה' הקטע של Project Navigator כדי לאמת את החבילה והגרסה שלה.

כדי לעדכן את package בפרויקט קיים:

  1. אם אתה משדרג מגרסה קודמת מ-9.0.0, עליך להסיר את יחסי התלות האלה: GoogleMapsBase, GoogleMapsCore, GoogleMapsM4B אחרי השדרוג. אל תסירו את התלות של GoogleMaps מידע נוסף זמין במאמר נתוני גרסה 9.0.0.

    בהגדרות האישיות של פרויקט Xcode, מחפשים את Frameworks, ספריות, ותוכן מוטמע. משתמשים בסימן המינוס(-) כדי להסיר את המסגרת הבאה:

    • GoogleMapsBase (רק לשדרוגים מגרסאות מוקדמות יותר מ-9.0.0)
    • GoogleMapsCore (רק לשדרוגים מגרסאות מוקדמות יותר מ-9.0.0)
    • GoogleMapsM4B (רק לשדרוגים מגרסאות מוקדמות יותר מ-9.0.0)
  2. מ-Xcode, עוברים אל 'File >' חבילות > יש לעדכן לגרסאות האחרונות של החבילה".
  3. כדי לאמת את ההתקנה, עוברים לקטע Package Dependencies של Project Navigator כדי לאמת את החבילה והגרסה שלה.

כדי להסיר יחסי תלות קיימים של Navigation SDK שנוספו באמצעות CocoaPods, יש לבצע את השלבים הבאים:

  1. סוגרים את סביבת העבודה של Xcode. פותחים את הטרמינל ומריצים את הפקודה הבאה:
    sudo gem install cocoapods-deintegrate cocoapods-clean 
    pod deintegrate 
    pod cache clean --all
  2. מסירים את Podfile, Podfile.resolved ואת Xcode workspace אם אתם לא משתמשים בהם לאף מטרה אחרת מלבד CocoaPods.

כדי להסיר SDK קיים של Navigation SDK ל-iOS שהותקנו באופן ידני, יש לבצע את השלבים הבאים:
  1. בהגדרות האישיות של פרויקט Xcode, מחפשים את Frameworks, ספריות, ותוכן מוטמע. משתמשים בסימן המינוס(-) כדי להסיר את המסגרת הבאה:
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
    • GoogleNavigation.xcframework
  2. מהספרייה ברמה העליונה של פרויקט Xcode, מסירים את GoogleMaps חבילה.

CocoaPods

SDK לניווט עבור iOS זמין בתור קבוצת CocoaPods. CocoaPods הוא מנהל יחסי תלות בקוד פתוח עבור Swift ו-Objective-C פרויקטים של קקאו.

אם עדיין לא התקנתם את הכלי CocoaPods, מתקינים אותו ב-macOS באמצעות הרצת הפקודה הבאה מהטרמינל. פרטים נוספים זמינים במאמר CocoaPods מדריך לתחילת העבודה.

sudo gem install cocoapods

יוצרים Podfile עבור ה-SDK לניווט ל-iOS ומשתמשים כדי להתקין את ה-API ואת יחסי התלות שלו:

  1. אם עדיין אין לך פרויקט Xcode, עליך ליצור פרויקט עכשיו ולשמור אותו ב- במחשב המקומי שלכם. אם זו הפעם הראשונה שאתם משתמשים בפיתוח ל-iOS:
    1. יוצרים פרויקט חדש.
    2. בוחרים באפשרות iOS > תבנית של לאפליקציה.
    3. במסך אפשרויות הפרויקט:
      1. מזינים את Project Name (שם הפרויקט).
      2. מתעדים את הערך בשדה Bundle ID (מזהה החבילה). אפשר להשתמש בערך הזה כדי להגביל את מפתח ה-API בהמשך.
      3. מגדירים את הפרויקט Interface כ-Storyboard.
      4. מגדירים את Language כ-Swift או Objective-C.
  2. יוצרים קובץ בשם Podfile בספריית הפרויקט. הזה מגדיר את יחסי התלות של הפרויקט.
  3. עורכים את Podfile ומוסיפים את יחסי התלות עם גרסאות. הנה דוגמה שכוללת את התלות הדרושה SDK ניווט ל-iOS: # מסמך עזר להתקנת Cocoapods
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '15.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GoogleNavigation', '9.1.0'
    end
            
    צריך להריץ את הפקודה pod outdated באופן קבוע כדי לזהות גרסאות חדשות יותר גרסאות שונות. במקרה הצורך, משדרגים לגרסה העדכנית ביותר.
  4. שומרים את Podfile.
  5. פותחים טרמינל ועוברים לספרייה שמכילה את Podfile:

    cd <path-to-project>
  6. מריצים את הפקודה pod install. הפעולה הזו תתקין את ממשקי ה-API שצוינו ב-Podfile עם כל יחסי התלות.

    pod install
  7. סוגרים את Xcode ואז פותחים (לחיצה כפולה) את הפרויקט קובץ .xcworkspace להפעלת Xcode. מהשלב הזה ואילך, חייבים להשתמש בקובץ .xcworkspace כדי לפתוח את הפרויקט.

כדי לעדכן את ה-API לפרויקט קיים:

  1. פותחים טרמינל ונכנסים לספריית הפרויקט שמכילה את Podfile.
  2. מריצים את הפקודה pod update. הפעולה הזו מעדכנת את כל ממשקי ה-API שמצוינים ב-Podfile לגרסה העדכנית ביותר.

התקנה ידנית

במדריך הזה מוסבר איך להוסיף ידנית את ה-XCFrameworks שכוללים את SDK ניווט ל-iOS וSDK של מפות ל-iOS לפרויקט שלך ולקבוע את הגדרות ה-build ב-Xcode. XCFramework היא חבילה בינארית שאפשר להשתמש בה במספר פלטפורמות, כולל מכונות שמשתמשות בערכת השבבים M1

יש לבצע את השלבים הבאים כדי להתקין את XCFrameworks ל-Navigation SDK ל-iOS, וה-SDK של מפות Google ל-iOS:

  1. הורדת הקבצים הבינאריים וקובצי המשאבים הבאים של ה-SDK:
  2. מפעילים את Xcode ופותחים פרויקט קיים, או יוצרים פרויקט חדש. פרויקט. אם זו הפעם הראשונה שאתם משתמשים ב-iOS, יוצרים פרויקט חדש ובוחרים תבנית לאפליקציה ל-iOS.
  3. מסירים מהפרויקט את כל ההפניות הקיימות ל'מפות', 'ניווט' ו'מקומות'.
  4. גוררים את ה-XCFrameworks הבאות לפרויקט אל Frameworks, ספריות ותוכן מוטמע כדי להתקין את מפות Google. וערכות SDK לניווט (כשתתבקשו, בחרו באפשרות העתקת פריטים במקרה הצורך):
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
    • GoogleNavigation.xcframework
  5. גוררים את GoogleMaps.bundle מ-GoogleMapsResources שהורדתם בספרייה ברמה העליונה של פרויקט Xcode. כשמוצגת בקשה לעשות זאת, מוודאים שהאפשרות העתקת פריטים במקרה הצורך מסומנת.
  6. גוררים את הקובץ GoogleNavigation.bundle מ-GoogleNavigationResources שהורדתם בספרייה ברמה העליונה של פרויקט Xcode. כשתתבקשו, ודאו נבחרה האפשרות העתקת פריטים לתיקייה של קבוצת היעד.
  7. בוחרים את הפרויקט מ-Project Navigator ואז בוחרים היעד של האפליקציה.
  8. פותחים את הכרטיסייה שלבי ה-build. קישור של Binary לספריות, הוספה של ה-frameworks והספריות הבאות:
    • Accelerate.framework
    • AudioToolbox.framework
    • AVFoundation.framework
    • Contacts.framework
    • CoreData.framework
    • CoreGraphics.framework
    • CoreImage.framework
    • CoreLocation.framework
    • CoreTelephony.framework
    • CoreText.framework
    • GLKit.framework
    • ImageIO.framework
    • libc++.tbd
    • libxml2.tbd
    • libz.tbd
    • Metal.framework
    • OpenGLES.framework
    • QuartzCore.framework
    • Security.framework
    • SystemConfiguration.framework
    • UIKit.framework
    • UserNotifications.framework
    • WebKit.framework
  9. ביעד של האפליקציה, בוחרים את הכרטיסייה Capabilities, מפעילים את האפשרות מצבים ברקע ומפעילים את המצבים הבאים:
    • אודיו, AirPlay ו'תמונה בתוך תמונה'
    • עדכוני מיקום
  10. בוחרים בפרויקט שלכם (ולא ביעד ספציפי) ופותחים את Build בכרטיסייה 'הגדרות'. בקטע Other Linker Banners (סימון מקשר אחר), מוסיפים ‑ObjC גם לניפוי באגים וגם לגרסה. אם ההגדרות האלה לא מוצגות, אפשר לשנות את המסנן סרגל יצירת ההגדרות מבסיסי להכול.
  11. פותחים את Info.plist ומוסיפים את צמדי המפתח/ערך הבאים:
    • מפתח: NSLocationWhenInUseUsageDescription (פרטיות – מיקום בזמן השימוש בתיאור))
      ערך: "האפליקציה הזו צריכה הרשאה להשתמש במיקום שלך לניווט מפורט."
    • מפתח: NSLocationAlwaysAndWhenInUseUsageDescription (פרטיות – מיקום תמיד ובעת שימוש תיאור)
      ערך: "האפליקציה הזו צריכה הרשאה להשתמש במיקום שלך לניווט מפורט."

שלב 3: בודקים את קובץ מניפסט הפרטיות של Apple

Apple דורשת פרטים לגבי הפרטיות של אפליקציות ב-App Store. עדכונים ומידע נוסף זמינים בדף פרטי הפרטיות של Apple App Store.

קובץ מניפסט הפרטיות של Apple כלול בחבילת המשאבים של ה-SDK. כדי לוודא שקובץ מניפסט הפרטיות נכלל וכדי לבדוק את התוכן שלו, יש ליצור ארכיון של האפליקציה ולהפיק דוח פרטיות מהארכיון.

שלב 4: מוסיפים את מפתח ה-API לפרויקט

הדוגמאות הבאות מראות איך להוסיף את מפתח ה-API לפרויקט ב-Xcode:

Swift

מוסיפים את מפתח ה-API ל-AppDelegate.swift באופן הבא:

  1. הוסף את הצהרות הייבוא הבאות:
    import GoogleMaps
    import GoogleNavigation
  2. צריך להוסיף את הפריטים הבאים לapplication(_:didFinishLaunchingWithOptions:) method:
    GMSServices.provideAPIKey("YOUR_API_KEY")

Objective-C

מוסיפים את מפתח ה-API ל-AppDelegate.m באופן הבא:

  1. הוסף את הצהרות הייבוא הבאות:
    @import GoogleMaps;
    @import GoogleNavigation;
  2. צריך להוסיף את הפריטים הבאים לapplication:didFinishLaunchingWithOptions: method:
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];

שלב 5: הוספת מפה

הקוד הזה מדגים איך להוסיף מפה פשוטה אל ViewController קיים, כולל כמה הגדרות ראשוניות לניווט.

לפני שניתן להפעיל את הניווט, המשתמש חייב להסכים לתנאים את התנאים וההגבלות. כדי לשלוח הודעה למשתמש, התקשר GMSNavigationServices.showTermsAndConditionsDialogIfNeeded(), ואז מסמנים כדי לראות אם התנאים אושרו. אם המשתמש ידחה את התנאים, לפרמטר mapView.isNavigationEnabled = true אין השפעה, ו-mapView.navigator הוא nil.

Swift

import UIKit
import GoogleNavigation

class ViewController: UIViewController {

  var mapView: GMSMapView!
  var locationManager: CLLocationManager!

  override func loadView() {
    locationManager = CLLocationManager()
    locationManager.requestAlwaysAuthorization()

    let options = GMSMapViewOptions()
    options.camera = camera
    options.frame = .zero
    mapView = GMSMapView(options: options)

    // Show the terms and conditions.
    let termsAndConditionsOptions = GMSNavigationTermsAndConditionsOptions(companyName: "Ride Share Co.")

    GMSNavigationServices.showTermsAndConditionsDialogIfNeeded(with: termsAndConditionsOptions) { termsAccepted in
      if termsAccepted {
        // Enable navigation if the user accepts the terms.
        self.mapView.isNavigationEnabled = true
      } else {
        // Handle the case when the user rejects the terms and conditions.
      }
    }

    view = mapView
  }

  // TODO: Add navigation code.

}

Objective-C

#import "ViewController.h"
@import GoogleNavigation;

@interface ViewController ()
@end

@implementation ViewController
GMSMapView *_mapView;
CLLocationManager *_locationManager;

-   (void)loadView {

  _locationManager = [[CLLocationManager alloc] init];
  [_locationManager requestAlwaysAuthorization];

  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:47.67
                                                          longitude:-122.20
                                                               zoom:14];
  GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
  options.frame = CGRectZero;
  options.camera = camera;
  options.mapID = mapID;
  _mapView = [[GMSMapView alloc] initWithOptions:options];

  // Show the terms and conditions.
  GMSNavigationTermsAndConditionsOptions *termsAndConditionsOptions = [[GMSNavigationTermsAndConditionsOptions alloc] initWithCompanyName:@"Ride Sharing Co."];
  
  [GMSNavigationServices
    showTermsAndConditionsDialogIfNeededWithOptions:termsAndConditionsOptions
    callback:^(BOOL termsAccepted) {
     if (termsAccepted) {
       // Enable navigation if the user accepts the terms.
       _mapView.navigationEnabled = YES;
     } else {
       // Handle the case when the user rejects the terms and conditions.
     }
   }];

  self.view = _mapView;
}

// TODO: Add navigation code.

@end

מפעילים את האפליקציה. אתם אמורים לראות מפה במרכזה של קירקלנד, וושינגטון.

אם המפה לא גלויה, אפשר לנסות את הפעולות הבאות:

  • מוודאים שהזנתם את מפתח ה-API הנכון.
  • בודקים ש-NavSDK מופעל במסוף Cloud.
  • אם ערכת ה-SDK של Nav מותקנת אבל בפרויקט שלך לא נעשה שימוש בממשקי API של Nav SDK, צריך להסיר אותה מהבינארי.

אם אתם לקוחות של שירותי ניידות

אם את/ה לקוחות של שירותי ניידות, ניתן לקבל מידע נוסף על חיוב במסמכי התיעוד בנושא ניידות. למידע נוסף על הקלטה עסקאות, לראות הגדרת חיוב. לקבלת מידע על הוספת מזהי עסקאות להטמעה של ה-SDK של הניווט, אפשר לעיין במאמר שיוך השימוש שלכם בשירות לעסקאות ניידות

המאמרים הבאים

עכשיו, אחרי שיש לכם מפתח API ופרויקט Xcode, אתם יכולים ליצור ולהפעיל אפליקציות. SDK הניווט ל-iOS מספק מדריכים שיכולים לעזור לכם להתחיל בעבודה בקלות. פרטים נוספים זמינים במאמרים הבאים: