إعداد مشروع Xcode

بعد تفعيل الفوترة وإنشاء مفتاح واجهة برمجة التطبيقات، تكون جاهزًا لإعداد رمز Xcode. مشروعك تستخدمه في تطوير تطبيقك.

تتوفر ملاحظات الإصدار لكل .

الخطوة 1: تثبيت البرنامج المطلوب

لإنشاء مشروع باستخدام حزمة SDK للتنقل لنظام التشغيل iOS، يجب تنزيل وتثبيت:

  • Xcode الإصدار 15.0 أو إصدار أحدث

الخطوة 2: إنشاء مشروع Xcode وتثبيت حزمة Navigation SDK

مدير حزم Swift

يمكن تثبيت حزمة SDK للتنقل عبر مدير حزم Swift لإضافة حزمة تطوير البرامج (SDK)، تأكَّد من أنّ لديك إزالة أي تبعيات حالية لحزمة تطوير البرامج (SDK) للتنقل.

لإضافة حزمة تطوير البرامج (SDK) إلى مشروع جديد أو حالي، اتّبِع الخطوات التالية:

  1. افتح Xcode project أو workspace، ثم انتقِل إلى File >. أضِف تبعيات الحزمة.
  2. أدخِل https://github.com/googlemaps/ios-navigation-sdk كعنوان URL، ثم اضغط على Enter. لسحب الحزمة، والنقر فوق "Add Package" (إضافة حزمة).
  3. لتثبيت قاعدة version محدّدة، اضبط حقل قاعدة التبعية على أحد الخيارات المستندة إلى الإصدار. وبالنسبة للمشروعات الجديدة، نوصي بتحديد أحدث إصدار باستخدام "الإصدار الدقيق" الخيار. بعد اكتمال عملية النقل، انقر على "إضافة حزمة".
  4. من نافذة اختيار منتجات الحزمة، تأكَّد من إضافة GoogleNavigation إلى هدف main المحدد. بعد اكتمال عملية النقل، انقر على "إضافة حزمة".
  5. للتحقّق من عملية التثبيت، انتقِل إلى جزء General في استهدافك. من المفترَض أن تظهر الحِزَم المثبَّتة في أُطر العمل والمكتبات والمحتوى المضمَّن. يمكنك أيضًا عرض قسم "تبعيات الحزمة" قسم "مستكشف المشروع" للتحقق من الحزمة وإصدارها.

لتعديل package لمشروع حالي، اتّبِع الخطوات التالية:

  1. في حال الترقية من إصدار أقدم من 9.0.0، يجب إزالة التبعيات التالية: GoogleMapsBase وGoogleMapsCore و GoogleMapsM4B بعد الترقية. لا تقم بإزالة تبعية GoogleMaps لمزيد من المعلومات، يُرجى الاطّلاع على ملاحظات الإصدار 9.0.0:

    من إعدادات ضبط مشروع Xcode، ابحث عن Frameworks وLibraries والمحتوى المضمَّن استخدِم علامة الطرح(-) لإزالة إطار العمل التالي:

    • GoogleMapsBase (للترقيات من الإصدارات السابقة على 9.0.0 فقط)
    • GoogleMapsCore (للترقيات من الإصدارات السابقة على 9.0.0 فقط)
    • GoogleMapsM4B (للترقيات من الإصدارات السابقة على 9.0.0 فقط)
  2. من Xcode، انتقل إلى "File >" (ملف >) الحزم > التحديث إلى أحدث إصدارات الحزمة".
  3. للتحقّق من عملية التثبيت، انتقِل إلى قسم تبعيات الحزمة في Project Navigator (أداة التنقّل في المشروع) للتحقق من الحزمة وإصدارها.

لإزالة العناصر الاعتمادية الحالية لحزمة تطوير البرامج (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 الحالية للتنقل في نظام التشغيل iOS والتي تم تثبيتها يدويًا، اتبع هذه الخطوات:
  1. من إعدادات ضبط مشروع Xcode، ابحث عن Frameworks وLibraries والمحتوى المضمَّن استخدِم علامة الطرح(-) لإزالة إطار العمل التالي:
    • 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 واستخدِمها في تثبيت واجهة برمجة التطبيقات وتبعياتها:

  1. إذا لم يكن لديك مشروع Xcode حتى الآن، يمكنك إنشاء مشروع الآن وحفظه في جهازك المحلي. إذا كنت مبتدئًا في مجال تطوير تطبيقات iOS:
    1. أنشِئ مشروعًا جديدًا.
    2. حدد iOS > نموذج التطبيق.
    3. على شاشة خيارات المشروع:
      1. أدخِل اسم المشروع.
      2. سجّل قيمة حقل معرّف الحزمة. يمكنك استخدام هذه القيمة لتقييد مفتاح واجهة برمجة التطبيقات أدناه.
      3. اضبط واجهة المشروع على مخطط القصة.
      4. اضبط اللغة على 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.0.0'
    end
            
    تأكَّد من تشغيل pod outdated بانتظام لاكتشاف الإصدارات الأحدث مماثلة. إذا لزم الأمر، عليك ترقية إلى أحدث إصدار.
  4. احفظ Podfile.
  5. افتح نافذة طرفية وانتقِل إلى الدليل الذي يحتوي على Podfile:

    cd <path-to-project>
  6. شغِّل الأمر pod install. يؤدي هذا إلى تثبيت واجهات برمجة التطبيقات المحدّدة في Podfile، إلى جانب أي ملحقات.

    pod install
  7. أغلق Xcode، ثم افتح ملف مشروعك (بالنقر المزدوج) .xcworkspace لتشغيل Xcode. من هذا الوقت فصاعدًا، يجب استخدام ملف .xcworkspace لفتح المشروع.

لتحديث واجهة برمجة التطبيقات لمشروع حالي، اتّبِع الخطوات التالية:

  1. افتح نافذة طرفية وانتقِل إلى دليل المشروع الذي يحتوي على Podfile.
  2. شغِّل الأمر pod update. يؤدي هذا إلى تحديث جميع واجهات برمجة التطبيقات المحدد في Podfile إلى أحدث إصدار.

التثبيت اليدوي

يوضح هذا الدليل كيفية إضافة XCFrameworks يدويًا التي تحتوي على حزمة تطوير البرامج (SDK) للتنقّل لنظام التشغيل iOS وحزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لنظام التشغيل iOS إلى مشروعك وضبط إعدادات الإصدار في Xcode XCFramework هو حزمة ثنائية يمكنك استخدامها على عدة أنظمة أساسية، بما في ذلك الأجهزة التي تستخدم شريحة M1.

اتبع هذه الخطوات لتثبيت XCFrameworks لحزمة تطوير البرامج (SDK) للتنقل لنظام التشغيل iOS، وحزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لتطبيقات iOS:

  1. يمكنك تنزيل البرامج الثنائية لحزمة تطوير البرامج (SDK) وملفات الموارد التالية:
  2. ابدأ تشغيل Xcode وافتح مشروعًا حاليًا أو أنشئ مشروعًا جديدًا مشروعك. إذا كنت مستخدمًا جديدًا لنظام التشغيل iOS، أنشئ مشروعًا جديدًا واختَر نموذج تطبيق iOS.
  3. إزالة جميع المراجع الحالية للخرائط والتنقل والأماكن من المشروع.
  4. اسحب XCFrameworks التالي إلى مشروعك ضمن أعمال الإطارات والمكتبات والمحتوى المضمَّن لتثبيت كل من "خرائط Google" وحزم SDK للتنقل (عندما يُطلب منك ذلك، اختَر نسخ العناصر عند الحاجة):
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
    • GoogleNavigation.xcframework
  5. اسحب GoogleMaps.bundle من GoogleMapsResources التي نزّلتها. إلى دليل المستوى الأعلى لمشروع Xcode. عندما يُطلب منك ذلك، تأكَّد من اختيار نسخ العناصر إذا لزم الأمر.
  6. اسحب GoogleNavigation.bundle من GoogleNavigationResources الذي نزّلته. إلى دليل المستوى الأعلى لمشروع Xcode. يُرجى التأكُّد من ذلك عندما يُطلب منك ذلك. تم اختيار نسخ الملفات إلى مجلد المجموعة الوجهة.
  7. اختَر مشروعك من Project Navigator، ثم اختَر هدف التطبيق.
  8. افتح علامة التبويب مراحل التصميم وضمن ربط النظام الثنائي بالمكتبات، أضِف أُطر العمل والمكتبات التالية:
    • 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. اختَر علامة التبويب الإمكانات في هدف التطبيق. تفعيل أوضاع الخلفية وتفعيل الأوضاع التالية:
    • ميزة "الصوت" و"AirPlay" و"نافذة ضمن النافذة"
    • إشعارات بشأن الموقع الجغرافي
  10. اختر مشروعك بدلاً من هدف محدد، وافتح زر إنشاء الإعدادات في القسم علامات الروابط الأخرى، إضافة ‑ObjC لكل من debug وrelease. إذا لم تكن هذه الإعدادات مرئية، يمكنك تغيير الفلتر في شريط إعدادات الإصدار من أساسي إلى الكل.
  11. افتح Info.plist وأضِف أزواج المفتاح/القيمة التالية:
    • المفتاح: NSLocationWhenInUseUsageDescription (الخصوصية - وصف الموقع الجغرافي عند الاستخدام)
      القيمة: "يحتاج هذا التطبيق إلى إذن لاستخدام موقعك الجغرافي من أجل الحصول على اتّجاهات مفصّلة".
    • المفتاح: NSLocationAlwaysAndWhenInUseUsageDescription (الخصوصية - وصف الموقع الجغرافي دائمًا وعند الاستخدام)
      القيمة: "يحتاج هذا التطبيق إلى إذن لاستخدام موقعك الجغرافي من أجل الحصول على اتّجاهات مفصّلة".

الخطوة 3: فحص ملف بيان الخصوصية في Apple

تشترط Apple تفاصيل خصوصية التطبيقات للتطبيقات المتوفّرة على App Store. يُرجى الانتقال إلى صفحة تفاصيل خصوصية Apple App Store للاطّلاع على آخر الأخبار والمعلومات.

يتم تضمين ملف بيان الخصوصية من Apple في حزمة الموارد لحزمة تطوير البرامج (SDK). للتأكّد من تضمين "ملف بيان الخصوصية" وفحص محتواه، عليك إنشاء أرشيف لتطبيقك وإنشاء تقرير خصوصية من الأرشيف.

الخطوة 4: إضافة مفتاح واجهة برمجة التطبيقات إلى المشروع

توضح الأمثلة التالية كيفية إضافة مفتاح واجهة برمجة التطبيقات إلى مشروعك في Xcode:

Swift

أضِف مفتاح واجهة برمجة التطبيقات إلى AppDelegate.swift على النحو التالي:

  1. أضف عبارات الاستيراد التالية:
    import GoogleMaps
    import GoogleNavigation
  2. أضِف ما يلي إلى application(_:didFinishLaunchingWithOptions:) :
    GMSServices.provideAPIKey("YOUR_API_KEY")

Objective-C

أضِف مفتاح واجهة برمجة التطبيقات إلى AppDelegate.m على النحو التالي:

  1. أضف عبارات الاستيراد التالية:
    @import GoogleMaps;
    @import GoogleNavigation;
  2. أضِف ما يلي إلى application:didFinishLaunchingWithOptions: :
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];

الخطوة 5: إضافة خريطة

يوضح هذا الرمز كيفية إضافة خريطة بسيطة إلى ViewController موجود، بما في ذلك بعض الإعدادات الأولية للتنقل.

قبل تمكين التنقل، يجب أن يوافق المستخدم على البنود الظروف. لطلب من المستخدم، اتصِل GMSNavigationServices.showTermsAndConditionsDialogIfNeeded()، ثم التحقق من لمعرفة ما إذا كانت البنود قد تم قبولها. إذا رفض المستخدم البنود، mapView.isNavigationEnabled = true ليس له أي تأثير، وmapView.navigator لا شيء

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

شغِّل التطبيق. يجب أن تظهر لك خريطة تتمركز فوق كيركلاند، واشنطن.

إذا لم تكن الخريطة مرئية، يمكنك تجربة ما يلي:

  • تأكَّد من تقديم مفتاح واجهة برمجة التطبيقات الصحيح.
  • تأكَّد من تفعيل NavSDK في Cloud Console.
  • في حال تثبيت حزمة تطوير البرامج (SDK) للتنقل، ولكنّ مشروعك لا يستخدم واجهات برمجة تطبيقات Nav SDK، عليك إزالتها من البرنامج الثنائي.

إذا كنت أحد عملاء "خدمات الجوّال"

إذا كنت أحد عملاء "خدمات الجوّال"، تعرَّف على معلومات عن الفوترة. في وثائق التنقل. لمزيد من المعلومات حول التسجيل المعاملات، راجع إعداد الفوترة للتعرّف على كيفية إضافة معرّفات المعاملات إلى عملية تنفيذ حزمة تطوير البرامج (SDK) للتنقّل، يمكنك الاطّلاع على ربط استخدام الخدمة بمعاملات التنقّل

الخطوات التالية

والآن بعد أن أصبح لديك مفتاح واجهة برمجة التطبيقات ومشروع Xcode، يمكنك إنشاء التطبيقات وتشغيلها. توفر حزمة SDK للتنقل لنظام التشغيل iOS برامج تعليمية يمكن أن تساعدك للبدء. لمزيد من التفاصيل، يُرجى الاطّلاع على: