إعداد مشروع Xcode

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

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

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

لإنشاء مشروع باستخدام حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لنظام التشغيل iOS، يجب تنزيل وتثبيت:

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

الخطوة 2: إنشاء مشروع Xcode وتثبيت "حزمة تطوير البرامج (SDK) للخرائط" لنظام التشغيل iOS

مدير حزم Swift

يمكن تثبيت حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لنظام التشغيل iOS من خلال مدير حزم Swift لإضافة حزمة تطوير البرامج (SDK)، تأكَّد من أنّ لديك تمت إزالة أي حزمة تطوير برامج (SDK) حالية للخرائط لتبعيات iOS.

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

  1. افتح Xcode project أو workspace، ثم انتقِل إلى File >. أضِف تبعيات الحزمة.
  2. أدخِل https://github.com/googlemaps/ios-maps-sdk كعنوان URL، ثم اضغط على Enter. لسحب الحزمة، والنقر فوق "Add Package" (إضافة حزمة).
  3. لتثبيت قاعدة version محدّدة، اضبط حقل قاعدة التبعية على أحد الخيارات المستندة إلى الإصدار. وبالنسبة للمشروعات الجديدة، نوصي بتحديد أحدث إصدار باستخدام "الإصدار الدقيق" الخيار. بعد اكتمال عملية النقل، انقر على "إضافة حزمة".
  4. من نافذة اختيار منتجات الحزمة، أثبِت صحة GoogleMaps (بالنسبة إلى الإصدارات الأقدم من 9.0.0، تحقَّق من صحته. GoogleMaps وGoogleMapsBase و GoogleMapsCore) ستتم إضافتها إلى هدف 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) الحالية لخرائط Google لتبعيات 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) الحالية لخرائط Google لنظام التشغيل iOS والتي تم تثبيتها يدويًا، اتّبع الخطوات التالية:
  1. من إعدادات ضبط مشروع Xcode، ابحث عن Frameworks وLibraries والمحتوى المضمَّن استخدِم علامة الطرح(-) لإزالة إطار العمل التالي:
    • GoogleMaps
    • GoogleMapsBase (لعمليات التثبيت فقط الأقدم من الإصدار 9.0.0)
    • GoogleMapsCore (لعمليات التثبيت فقط الأقدم من الإصدار 9.0.0)
    • GoogleMapsM4B (لعمليات التثبيت فقط الأقدم من الإصدار 9.0.0)
  2. من دليل المستوى الأعلى لمشروع Xcode، عليك إزالة GoogleMaps. حُزم.

CocoaPods

تتوفر حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لتطبيقات iOS CocoaPods. CocoaPods هو مدير تبعية مفتوح المصدر لكلٍّ من Swift وObjective-C مشروعات الكاكاو.

إذا لم تكن لديك أداة CocoaPods، يمكنك تثبيتها على نظام التشغيل macOS من خلال تشغيل الأمر التالي من الوحدة الطرفية. للحصول على التفاصيل، يمكنك مراجعة دليل بدء استخدام CocoaPods

sudo gem install cocoapods

أنشئ Podfile لحزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لنظام التشغيل iOS واستخدِمه. في تثبيت واجهة برمجة التطبيقات وتبعياتها:

  1. إذا لم يكن لديك مشروع Xcode حتى الآن، يمكنك إنشاء مشروع الآن وحفظه في جهازك المحلي. إذا كنت مبتدئًا في مجال تطوير تطبيقات iOS:
    1. أنشِئ مشروعًا جديدًا.
    2. حدد iOS > نموذج التطبيق.
    3. على شاشة خيارات المشروع:
      1. أدخِل اسم المشروع.
      2. سجّل قيمة حقل معرّف الحزمة. يمكنك استخدام هذه القيمة لتقييد مفتاح واجهة برمجة التطبيقات أدناه.
      3. اضبط واجهة المشروع على مخطط القصة.
      4. اضبط اللغة على Swift أو Objective-C.
  2. أنشئ ملفًا باسم "Podfile" في دليل مشروعك. هذا النمط ملف يحدد تبعيات مشروعك.
  3. يمكنك تعديل Podfile وإضافة الموارد التابعة لك إلى جانب versions. فيما يلي مثال يتضمن التبعية التي تحتاجها حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط 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 بانتظام لرصد أي إصدار أحدث للتأكد من أنّكم على اطّلاع دائم على آخر الأخبار. إذا لزم الأمر، يمكنك الترقية إلى أحدث إصدار.
  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 الخاصة بـ "خرائط Google" لتطبيقات iOS وضبط إعدادات تصميمك في Xcode. XCFramework هو حزمة ثنائية يمكنك استخدامها على عدة أنظمة أساسية، بما في ذلك الأجهزة التي تستخدم Apple silicon.
  1. يمكنك تنزيل البرامج الثنائية لحزمة تطوير البرامج (SDK) وملفات الموارد التالية:
  2. يمكنك استخراج الملفات للوصول إلى XCFrameworks والموارد.
  3. إذا لم يكن لديك مشروع Xcode حتى الآن، يمكنك إنشاء مشروع الآن وحفظه في جهازك المحلي. إذا كنت مبتدئًا في مجال تطوير تطبيقات iOS:
    1. أنشِئ مشروعًا جديدًا.
    2. حدد iOS > نموذج التطبيق.
    3. على شاشة خيارات المشروع:
      1. أدخِل اسم المشروع.
      2. سجّل قيمة حقل معرّف الحزمة. يمكنك استخدام هذه القيمة لتقييد مفتاح واجهة برمجة التطبيقات أدناه.
      3. اضبط واجهة المشروع على مخطط القصة.
      4. اضبط اللغة على Swift أو Objective-C.
  4. افتح علامة التبويب الإعدادات العامة. اسحب تطبيقات XCFrameworks التالية إلى مشروعك. ضِمن أُطر العمل والمكتبات والمحتوى المضمَّن. يُرجى التأكد من أنّ: لاختيار عدم التضمين لكل XCFramework:
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
  5. انسخ GoogleMaps.bundle من GoogleMapsResources. قمت بتنزيلها في دليل المستوى الأعلى لمشروع Xcode. تأكد من تحديد انسخ الملفات إلى مجلد المجموعة الوجهة عندما يُطلب منك ذلك.
  6. اختَر مشروعك من Project Navigator، ثم اختَر هدف التطبيق.
  7. افتح علامة التبويب مراحل التصميم لهدف تطبيقك. ضمن ربط النظام الثنائي بالمكتبات، أضف ما يلي وأطر العمل والمكتبات:
    • 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
  8. اختر مشروعك بدلاً من هدف محدد، وافتح علامة التبويب إعدادات الإصدار في الربط - عام -> رابط آخر قسم العلامات، أضِف -ObjC إلى "تصحيح الأخطاء" و"إصدار". إذا كانت هذه تكون الإعدادات غير مرئية، فغيّر الفلتر في شريط إعدادات التصميم من أساسي إلى الكل.

  9. لتثبيت حزمة تطوير برامج الأماكن لنظام التشغيل iOS XCFramework، راجع البدء باستخدام حزمة تطوير برامج الأماكن لأجهزة iOS.

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

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

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

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

في الحصول على مفتاح واجهة برمجة التطبيقات، يمكنك مفتاح واجهة برمجة تطبيقات لتطبيقك. أضف الآن هذا المفتاح إلى مشروع Xcode.

في الأمثلة التالية، استبدِل YOUR_API_KEY بمفتاح واجهة برمجة التطبيقات.

Swift

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

  1. أضف عبارة الاستيراد التالية:
    import GoogleMaps
  2. أضِف ما يلي إلى application(_:didFinishLaunchingWithOptions:) باستخدام مفتاح واجهة برمجة التطبيقات:
    GMSServices.provideAPIKey("YOUR_API_KEY")
  3. إذا كنت تستخدم Places API أيضًا، فأضِف المفتاح مرة أخرى كما هو موضّح هنا:
    GMSPlacesClient.provideAPIKey("YOUR_API_KEY")

Objective-C

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

  1. أضف عبارة الاستيراد التالية:
    @import GoogleMaps;
  2. أضِف ما يلي إلى application:didFinishLaunchingWithOptions: باستخدام مفتاح واجهة برمجة التطبيقات:
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];
  3. إذا كنت تستخدم 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 التي تستخدمها واجهة برمجة التطبيقات

بدءًا من iOS 9 وXcode 7، يمكن للتطبيقات الإفصاح عن مخططات عناوين URL التي فتحه من خلال تحديد المخطّطات في ملف Info.plist الخاص بالتطبيق. تشير رسالة الأشكال البيانية تفتح حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لنظام التشغيل iOS تطبيق "خرائط Google" المتوافق مع الأجهزة الجوّالة عندما ينقر المستخدم. شعار Google على الخريطة، وبالتالي يمكن لتطبيقك تعريف عنوان URL ذي الصلة المخططات.

للإعلان عن مخططات عناوين URL التي تستخدمها حزمة تطوير البرامج بالاستناد إلى بيانات "خرائط Google" لنظام التشغيل iOS، أضف الأسطر التالية إلى Info.plist:

LSApplicationQueriesSchemes Google Chrome comgooglemaps

تعرض لقطة الشاشة التالية الإعدادات في واجهة مستخدم Xcode:

ضبط LSApplicationQuerySchemes في
Xcode

وبدون البيان السابق، يمكن أن تحدث الأخطاء التالية عندما ينقر المستخدم على شعار Google على الخريطة:

  • -canOpenURL: تعذَّر استخدام عنوان URL التالي: "comgooglemaps:// " - الخطأ: "هذا التطبيق ليس يُسمح للاستعلام عن مخطط comgooglemaps"
  • -canOpenURL: تعذَّر استخدام عنوان URL التالي: "googlechromes:// " - الخطأ: "هذا التطبيق ليس يُسمح له بطلب البحث عن مخطط googlechromes"

لإزالة هذه الأخطاء، أضِف البيان إلى Info.plist.

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

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