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

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

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

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

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

  • ‫Xcode גרסה 26.0 ואילך

שלב 2: יוצרים את הפרויקט ב-Xcode ומתקינים את ה-SDK של מפות ל-iOS

גודל ההתקנה של ה-SDK משתנה. לדוגמה, גודל ההתקנה של SDK של מפות ל-iOS בגרסה 9.0 הוא כ-18MB.

Swift Package Manager

אפשר להתקין את ה-SDK של מפות ל-iOS באמצעות Swift Package Manager. כדי להוסיף את ה-SDK, צריך לוודא שהסרתם את כל יחסי התלות הקיימים של SDK של מפות ל-iOS.

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

  1. פותחים את project או את workspace ב-Xcode, ואז עוברים אל File > Add Package Dependencies (קובץ > הוספת יחסי תלות של חבילות).
  2. מזינים את כתובת ה-URL‏ https://github.com/googlemaps/ios-maps-sdk, מקישים על Enter כדי למשוך את החבילה ולוחצים על Add Package.
  3. כדי להתקין version ספציפי, מגדירים את השדה כלל תלות לאחת מהאפשרויות שמבוססות על גרסה. בפרויקטים חדשים, מומלץ לציין את הגרסה העדכנית ביותר ולהשתמש באפשרות Exact Version. בסיום, לוחצים על "הוספת חבילה".
  4. בחלון Choose Package Products, מוודאים שהחבילה GoogleMaps (בגרסאות שקודמות ל-9.0.0, מוודאים שהחבילות GoogleMaps,‏ GoogleMapsBase ו-GoogleMapsCore) תתווסף ליעד main הרצוי. בסיום, לוחצים על "הוספת חבילה".
  5. כדי לאמת את ההתקנה, עוברים לחלונית General של היעד. בקטע Frameworks, Libraries, and Embedded Content אמורות להופיע החבילות שהותקנו. אפשר גם לבדוק את הקטע Package Dependencies (יחסי תלות של חבילות) ב-Project Navigator (ניווט בפרויקט) כדי לאמת את החבילה ואת הגרסה שלה.

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

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

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

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

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

  1. סוגרים את סביבת העבודה של Xcode. פותחים את הטרמינל ומריצים את הפקודה הבאה:
    sudo gem install cocoapods-deintegrate cocoapods-clean
    pod deintegrate
    pod cache clean --all
  2. מסירים את Podfile, Podfile.resolved ואת Xcode workspace אם לא משתמשים בהם לשום דבר אחר מלבד CocoaPods.
כדי להסיר את ה-SDK של מפות ל-iOS שהותקן באופן ידני, פועלים לפי השלבים הבאים:
  1. בהגדרות של פרויקט Xcode, מחפשים את Frameworks, Libraries, and Embedded Content (ספריות, מסגרות ותוכן מוטמע). משתמשים בסימן המינוס (-) כדי להסיר את המסגרת הבאה:
    • GoogleMaps
    • GoogleMapsBase (רק להתקנות של גרסאות קודמות ל-9.2.0)
    • ‫GoogleMapsCore (רק להתקנות של גרסאות ישנות יותר מ-9.2.0)
    • GoogleMapsM4B (רק להתקנות לפני גרסה 9.0.0)
  2. מסירים את החבילה GoogleMaps מהספרייה ברמה העליונה של פרויקט Xcode.

התקנה ידנית

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

  1. מורידים את קובצי המשאבים והקבצים הבינאריים הבאים של ה-SDK:
  2. מחלצים את הקבצים כדי לגשת ל-XCFrameworks ולמשאבים.
  3. אם עדיין אין לכם פרויקט Xcode, צרו פרויקט עכשיו ושמרו אותו במחשב המקומי. אם אתם חדשים בפיתוח ל-iOS:
    1. יוצרים פרויקט חדש.
    2. בוחרים בתבנית iOS > App.
    3. במסך האפשרויות של הפרויקט:
      1. מזינים את שם הפרויקט.
      2. מתעדים את הערך של השדה Bundle identifier (מזהה החבילה). אפשר להשתמש בערך הזה כדי להגביל את מפתח ה-API בהמשך.
      3. מגדירים את ממשק הפרויקט לסטוריבורד.
      4. מגדירים את Language (שפה) ל-Swift או ל-Objective-C.
  4. פותחים את הכרטיסייה כללי. גוררים את קובצי ה-XCFrameworks הבאים לפרויקט בקטע Frameworks, Libraries, and Embedded Content (ספריות, מסגרות ותוכן מוטמע). חשוב לבחור באפשרות Do Not Embed (לא להטמיע):
    • GoogleMaps.xcframework
  5. מעתיקים את GoogleMaps.bundle מהקובץ GoogleMapsResources שהורדתם לספרייה ברמה העליונה של פרויקט Xcode. חשוב לבחור באפשרות העתקת פריטים לתיקייה של קבוצת היעד כשמוצגת בקשה לעשות זאת.
  6. בוחרים את הפרויקט בחלונית הניווט בפרויקט, ובוחרים את היעד של האפליקציה.
  7. פותחים את הכרטיסייה Build Phases (שלבי פיתוח) של היעד באפליקציה. בקטע 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
    • MetricKit.framework
    • ‫OpenGLES.framework (רק אם משתמשים ב-OpenGL)
    • QuartzCore.framework
    • Security.framework
    • SystemConfiguration.framework
    • UIKit.framework
  8. בוחרים את הפרויקט, ולא יעד ספציפי, ופותחים את הכרטיסייה Build Settings. בקטע Linking - General -> Other Linker Flags, מוסיפים את -ObjC ל-Debug ול-Release. אם ההגדרות האלה לא מופיעות, משנים את המסנן בסרגל Build Settings מ-Basic ל-All.

  9. כדי להתקין את Places SDK ל-iOS XCFramework, קראו את המאמר תחילת העבודה עם Places SDK ל-iOS.

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

בקטע קבלת מפתח API, יצרתם מפתח API לאפליקציה. עכשיו צריך להוסיף את המפתח הזה לפרויקט ב-Xcode.

בדוגמאות הבאות, מחליפים את YOUR_API_KEY במפתח ה-API שלכם.

Swift

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

  1. מוסיפים את הצהרת הייבוא הבאה:
    import GoogleMaps
  2. מוסיפים את הקוד הבא ל-method ‏application(_:didFinishLaunchingWithOptions:), באמצעות מפתח ה-API:
    GMSServices.provideAPIKey("YOUR_API_KEY")
  3. אם אתם משתמשים גם ב-Places API, הוסיפו את המפתח שוב כמו שמוצג כאן:
    GMSPlacesClient.provideAPIKey("YOUR_API_KEY")

Objective-C

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

  1. מוסיפים את הצהרת הייבוא הבאה:
    @import GoogleMaps;
  2. מוסיפים את הקוד הבא ל-method ‏application:didFinishLaunchingWithOptions:, באמצעות מפתח ה-API:
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];
  3. אם אתם משתמשים גם ב-Places API, הוסיפו את המפתח שוב, כמו שמוצג כאן:
    [GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];

שלב 4 (אופציונלי): בודקים את קובץ מניפסט הפרטיות של אפל

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

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

שלב 5 (אופציונלי): מצהירים על סכמות ה-URL שבהן ה-API משתמש

החל מ-iOS 9 ו-Xcode 7, אפליקציות מצהירות על סכמות ה-URL שהן מתכוונות לפתוח על ידי ציון הסכמות בקובץ Info.plist של האפליקציה. ‫SDK של מפות ל-iOS פותח את אפליקציית מפות Google לנייד כשהמשתמש לוחץ על הלוגו של Google במפה, ולכן האפליקציה יכולה להצהיר על סכימות ה-URL הרלוונטיות.

כדי להצהיר על סכימות ה-URL שבהן משתמש ה-SDK של מפות ל-iOS, מוסיפים את השורות הבאות לקובץ Info.plist:

 <key>LSApplicationQueriesSchemes</key>
 <array>
        <string>googlechromes</string>
        <string>comgooglemaps</string>
    </array>

בתמונה הבאה מוצגת ההגדרה בממשק המשתמש של Xcode:

הגדרת `LSApplicationQueriesSchemes` ב-Xcode

אם לא תכללו את ההצהרה שלמעלה, יכול להיות שיופיעו השגיאות הבאות כשהמשתמש ילחץ על הלוגו של Google במפה:

  • -canOpenURL: failed for URL: "comgooglemaps://" - error: "This app is not allowed to query for scheme comgooglemaps"
  • -canOpenURL: failed for URL: "googlechromes://" - error: "This app is not allowed to query for scheme googlechromes"

כדי למנוע את השגיאות האלה, צריך להוסיף את ההצהרה לקובץ Info.plist.

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

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