بعد تفعيل الفوترة وإنشاء مفتاح واجهة برمجة التطبيقات، تصبح جاهزًا لإعداد مشروع Xcode الذي تستخدمه لتطوير تطبيقك.
تتوفر ملاحظات الإصدار لكل إصدار.
الخطوة 1: تثبيت البرنامج المطلوب
لإنشاء مشروع باستخدام حزمة تطوير برامج الأماكن لأجهزة iOS، تحتاج إلى:
- الإصدار 14.0 من Xcode أو إصدار أحدث
- Cocoapods
- إذا لم يكن لديك مشروع Xcode حتى الآن، يمكنك إنشاء مشروع الآن وحفظه على جهازك المحلي. إذا لم تكن لديك خبرة في تطوير تطبيقات iOS، أنشِئ مشروعًا جديدًا واختَر نموذج تطبيق iOS.
- أنشئ ملفًا باسم
Podfile
في دليل مشروعك. يحدد هذا الملف تبعيات مشروعك. - عدِّل
Podfile
وأضِف التبعيات مع versions. في ما يلي مثال يحدّد اسم استهداف التطبيق واسم مجموعة الإعلانات المتسلسلةGooglePlaces
:source 'https://github.com/CocoaPods/Specs.git' platform :ios, '14.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GooglePlaces', '8.3.0' end
احرص على تشغيلpod outdated
بانتظام لرصد توفّر إصدار أحدث لضمان توفُّر إصدار أحدث باستمرار. - احفظ
Podfile
. افتح وحدة طرفية وانتقِل إلى الدليل الذي يحتوي على
Podfile
:cd <path-to-project>
نفِّذ الأمر
pod install
. سيؤدي هذا الإجراء إلى تثبيت واجهات برمجة التطبيقات المحدّدة فيPodfile
، بالإضافة إلى أي تبعيات قد تكون لديك.pod install
أغلِق Xcode ثمّ افتح ملف
.xcworkspace
الخاص بمشروعك (انقر مرّتين) لتشغيله لتشغيل Xcode. من الآن فصاعدًا، يجب استخدام ملف.xcworkspace
لفتح المشروع.- افتح وحدة طرفية وانتقِل إلى دليل المشروع الذي يحتوي على
Podfile
. - نفِّذ الأمر
pod update
. سيؤدي هذا الإجراء إلى تحديث جميع واجهات برمجة التطبيقات المحدّدة فيPodfile
إلى أحدث إصدار. - نزِّل ملف SDK الثنائي وملفات الموارد التالية:
- فك ضغط الملفات المضغوطة للوصول إلى XCFramework والموارد.
- شغِّل Xcode وافتح مشروعًا حاليًا أو أنشئ مشروعًا جديدًا. إذا لم تكن خبيرًا في تطوير تطبيقات iOS، أنشئ مشروعًا جديدًا واختَر نموذج تطبيق iOS.
- أزل أي حِزم في "خرائط Google" من الإصدارات السابقة من مشروعك.
- اسحب XCFramework التالي إلى مشروعك ضمن Frameworks والمكتبات والمحتوى المضمَّن. تأكّد من
اختيار عدم التضمين:
GooglePlaces.xcframework
- اسحب
GooglePlaces.bundle
من GooglePlacesResources الذي نزّلته إلى دليل المستوى الأعلى لمشروع Xcode الخاص بك. تأكَّد من اختيار نسخ العناصر إلى مجلد المجموعة الوجهة عندما يُطلب منك ذلك. - اختَر مشروعك من Project Navigator، واختَر هدف تطبيقك.
- افتح علامة التبويب مراحل الإنشاء، وضمن ربط النظام الثنائي مع المكتبات، أضِف أُطر العمل والمكتبات التالية:
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
اختَر مشروعك بدلاً من هدف محدّد، ثم افتح علامة التبويب إعدادات الإصدار.
- في القسم علامات الروابط الأخرى، أضِف
-ObjC
. إذا لم تكن هذه الإعدادات مرئية، يمكنك تغيير الفلتر في شريط إعدادات الإصدار من أساسي إلى الكل. - أضِف عبارة الاستيراد التالية:
import GooglePlaces
- أضِف الإجراء التالي إلى طريقة
application(_:didFinishLaunchingWithOptions:)
، مع استبدال YOUR_API_KEY بمفتاح واجهة برمجة التطبيقات الخاص بك:GMSPlacesClient.provideAPIKey("YOUR_API_KEY")
- أضِف عبارة الاستيراد التالية:
@import GooglePlaces;
- أضِف الإجراء التالي إلى طريقة
application:didFinishLaunchingWithOptions:
، مع استبدال YOUR_API_KEY بمفتاح واجهة برمجة التطبيقات الخاص بك:[GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
الخطوة 2: إنشاء مشروع Xcode وتثبيت حزمة تطوير برامج الأماكن (SDK) لنظام التشغيل iOS
لتثبيت واجهة برمجة التطبيقات في مشروع جديد، يُرجى اتّباع الخطوات التالية:استخدام Cocoapods
تتوفر حزمة تطوير برامج الأماكن (SDK) لنظام التشغيل iOS في شكل لوحة CocoaPod المتسلسلة، وهي GooglePlaces التي تحتوي على جميع وظائف الأماكن.
CocoaPods هي مديرة اعتمادية مفتوحة المصدر لمشاريع Cocoa وSwift. إذا لم تكن لديك أداة CocoaPods، يمكنك تثبيتها على نظام التشغيل macOS من خلال تنفيذ الأمر التالي من الوحدة الطرفية. لمعرفة التفاصيل، يُرجى الاطّلاع على دليل البدء في CocoaPods.
sudo gem install cocoapods
أنشئ Podfile
لحزمة تطوير برامج الأماكن لأجهزة iOS واستخدمها لتثبيت حزمة تطوير البرامج (SDK) وملحقاتها:
لتحديث واجهة برمجة التطبيقات لمشروع حالي، اتّبِع الخطوات التالية:
التثبيت يدويًا
يوضّح هذا الدليل كيفية إضافة XCFramework الذي يحتوي على حزمة Places SDK لنظام التشغيل iOS يدويًا إلى مشروعك وضبط إعدادات الإصدار في Xcode. XCFramework هو حزمة ثنائية يمكنك استخدامها على أنظمة أساسية متعددة، بما في ذلك الأجهزة التي تستخدم Apple silicon.
الخطوة 3: إضافة مفتاح واجهة برمجة التطبيقات إلى تطبيقك
في الأمثلة التالية، استبدِل YOUR_API_KEY
بمفتاح واجهة برمجة التطبيقات.
Swift
أضِف مفتاح واجهة برمجة التطبيقات إلى AppDelegate.swift
على النحو التالي:
Objective-C
أضِف مفتاح واجهة برمجة التطبيقات إلى AppDelegate.m
على النحو التالي:
الخطوة 4: بدء كتابة التعليمات البرمجية
توضّح نماذج الرموز التالية كيفية الوصول إلى المكان الحالي.
Swift
import GooglePlaces import UIKit class GetStartedViewController : UIViewController { // Add a pair of UILabels in Interface Builder, and connect the outlets to these variables. @IBOutlet private var nameLabel: UILabel! @IBOutlet private var addressLabel: UILabel! private var placesClient: GMSPlacesClient! override func viewDidLoad() { super.viewDidLoad() placesClient = GMSPlacesClient.shared() } // Add a UIButton in Interface Builder, and connect the action to this function. @IBAction func getCurrentPlace(_ sender: UIButton) { let placeFields: GMSPlaceField = [.name, .formattedAddress] placesClient.findPlaceLikelihoodsFromCurrentLocation(withPlaceFields: placeFields) { [weak self] (placeLikelihoods, error) in guard let strongSelf = self else { return } guard error == nil else { print("Current place error: \(error?.localizedDescription ?? "")") return } guard let place = placeLikelihoods?.first?.place else { strongSelf.nameLabel.text = "No current place" strongSelf.addressLabel.text = "" return } strongSelf.nameLabel.text = place.name strongSelf.addressLabel.text = place.formattedAddress } } }
Objective-C
#import "GetStartedViewController.h" @import GooglePlaces; @interface GetStartedViewController () // Add a pair of UILabels in Interface Builder and connect the outlets to these variables @property (weak, nonatomic) IBOutlet UILabel *nameLabel; @property (weak, nonatomic) IBOutlet UILabel *addressLabel; @end @implementation GetStartedViewController { GMSPlacesClient *_placesClient; } - (void)viewDidLoad { [super viewDidLoad]; _placesClient = [GMSPlacesClient sharedClient]; } // Add a pair of UILabels in Interface Builder and connect the outlets to these variables. - (IBAction)getCurrentPlace:(UIButton *)sender { GMSPlaceField placeFields = (GMSPlaceFieldName | GMSPlaceFieldFormattedAddress); __weak typeof(self) weakSelf = self; [_placesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:placeFields callback:^(NSArray<GMSPlaceLikelihood *> * _Nullable likelihoods, NSError * _Nullable error) { __typeof__(self) strongSelf = weakSelf; if (strongSelf == nil) { return; } if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } GMSPlace *place = likelihoods.firstObject.place; if (place == nil) { strongSelf.nameLabel.text = @"No current place"; strongSelf.addressLabel.text = @""; return; } strongSelf.nameLabel.text = place.name; strongSelf.addressLabel.text = place.formattedAddress; }]; } @end
الخطوات التالية
بعد ضبط مشروعك، يمكنك استكشاف نماذج التطبيقات. يجب تثبيت الإصدار 1.6.1 من Cocoapods.