اتبع الخطوات الواردة في هذا الدليل لتنزيل "حزمة تطوير البرامج (SDK) لأماكن Google" على الأجهزة التي تعمل بنظام التشغيل iOS، ولإضافة المكتبة وتبعياتها إلى تطبيقك والحصول على مفتاح واجهة برمجة التطبيقات بدون أي رسوم.
تتوفر ملاحظات الإصدار لكل إصدار.
الخطوة 1: الحصول على أحدث إصدار من Xcode
لإنشاء مشروع باستخدام الأماكن SDK لنظام التشغيل iOS، تحتاج إلى:
الخطوة الثانية: تثبيت SDK
لتثبيت واجهة برمجة التطبيقات في مشروع جديد، اتّبع الخطوات التالية:استخدام Cocoapods
تتوفر حزمة تطوير البرامج (SDK) للأماكن في نظام التشغيل iOS على شكل لوحة CocoaPod، وهي GooglePlaces، تحتوي على جميع وظائف الأماكن.
CocoaPods هو مدير تبعية مصدر مفتوح المصدر لمشروعات Swift وGoal-C Cocoa. إذا لم يكن لديك أداة CocoaPods، ثبِّتها على نظام التشغيل macOS من خلال تشغيل الأمر التالي من الوحدة الطرفية. ولمعرفة التفاصيل، يُرجى الاطّلاع على دليل الخطوات الأولى لاستخدام CocoaPods.
sudo gem install cocoapods
أنشئ Podfile
لحزمة تطوير برامج الأماكن لنظام التشغيل iOS واستخدمها لتثبيت حزمة SDK وتبعياتها:
- إذا لم يكن لديك مشروع Xcode حتى الآن، يمكنك إنشاء مشروع الآن وحفظه على جهازك المحلي. في حال كنت مستخدمًا جديدًا في مرحلة تطوير نظام التشغيل iOS، يمكنك إنشاء مشروع جديد واختيار نموذج تطبيق iOS.
- أنشئ ملفًا باسم
Podfile
في دليل مشروعك. يحدّد هذا الملف تبعيات مشروعك. - يمكنك تعديل
Podfile
وإضافة العناصر التابعة لك إلى جانب إصداراتها. في ما يلي مثال يحدّد اسم التطبيق المستهدَف واسم لوحةGooglePlaces
:source 'https://github.com/CocoaPods/Specs.git' platform :ios, '13.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GooglePlaces', '7.4.0' end
احرص على تشغيلpod outdated
بانتظام لمعرفة متى يتوفّر إصدار أحدث لضمان توفّر أحدث الإصدارات لديك. - احفظ
Podfile
. افتح نافذة طرفية وانتقل إلى الدليل الذي يحتوي على
Podfile
:cd <path-to-project>
شغّل الأمر
pod install
. سيؤدي هذا إلى تثبيت واجهات برمجة التطبيقات المحدّدة فيPodfile
، بالإضافة إلى أي ملحقات قد تكون مرتبطة بها.pod install
أغلِق Xcode، ثم افتح (النقر المزدوج) ملف
.xcworkspace
لمشروعك لتشغيل Xcode. ومن الآن فصاعدًا، عليك استخدام ملف.xcworkspace
لفتح المشروع.
لتحديث واجهة برمجة التطبيقات لمشروع حالي، اتبع الخطوات التالية:
- افتح نافذة طرفية وانتقل إلى دليل المشروع الذي يحتوي على
Podfile
. - شغّل الأمر
pod update
. سيؤدي ذلك إلى تحديث جميع واجهات برمجة التطبيقات المحدّدة فيPodfile
إلى أحدث إصدار.
استخدام قرطاج
تتوفر حزمة SDK لأماكن iOS للاستخدام مع Carthage، وهو عبارة عن مدير تبعية لامركزي بسيط لمشاريع Swift وGoal-C Cocoa.
- ثبّت قرطاج. هناك عدة طرق، لذا اطّلِع على ملف قرطاج README لمعرفة الخطوات الدقيقة.
- إذا لم يكن لديك مشروع Xcode حتى الآن، يمكنك إنشاء مشروع الآن وحفظه على جهازك المحلي. في حال كنت مستخدمًا جديدًا في مرحلة تطوير نظام التشغيل iOS، يمكنك إنشاء مشروع جديد واختيار نموذج تطبيق iOS.
- أنشئ ملفًا باسم
Cartfile
في دليل مشروعك. يحدّد هذا الملف تبعيات مشروعك. - يمكنك تعديل
Cartfile
وإضافة تبعيات مع إصداراتها:
binary "https://dl.google.com/geosdk/GooglePlaces.json" == 6.2.1
تأكّد من تشغيلcarthage outdated
بانتظام لاكتشاف أي إصدار أحدث لضمان الحصول على أحدث إصدار دائمًا. - احفظ
Cartfile
. - في نافذة محطة دفع، انتقِل إلى الدليل الذي يحتوي على
Cartfile
:
cd <path-to-project>
- شغّل الأمر
carthage update
. سيؤدي هذا إلى تثبيت واجهات برمجة التطبيقات المحدّدة فيCartfile
، بالإضافة إلى أي ملحقات قد تكون مرتبطة بها. - في "الباحث"، في دليل المشروع، انتقِل إلى ملفات أُطر العمل التي تم تنزيلها ضمن
Carthage/Build/iOS
. - اسحب الحِزم التالية إلى مشروعك (عند الطلب، اختَر
نسخ العناصر إذا لزم الأمر):
GooglePlaces-x.x.x/Frameworks/GooglePlaces.xcframework
- انقر بزر الماوس الأيمن على
GooglePlaces.xcframework
في مشروعك، واختر إظهار في الباحث. - اسحب
GooglePlaces.bundle
من مجلدResources
إلى مشروعك. تأكد من عدم اختيار نسخ العناصر إلى مجلد المجموعة الوجهة عندما يُطلب منك ذلك. - اختَر مشروعك من Project Navigator، واختَر هدف تطبيقك.
- افتح علامة التبويب إنشاء مراحل وضمن ربط برنامج ثنائي باستخدام المكتبات، أضِف إطارات العمل والمكتبات التالية:
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
اختَر مشروعك، وليس هدفًا محدّدًا، وافتح علامة التبويب إعدادات الإصدار.
- في القسم علامات رابط أخرى، أضِف
-ObjC
. إذا لم تكن هذه الإعدادات مرئية، فغيّر الفلتر في شريط إعدادات الإصدار من أساسي إلى الكل.
لتحديث واجهة برمجة التطبيقات لمشروع حالي، اتبع الخطوات التالية:
- افتح نافذة طرفية وانتقل إلى دليل المشروع الذي يحتوي على
Cartfile
. - شغّل الأمر
carthage update
. سيؤدي ذلك إلى تعديل جميع واجهات برمجة التطبيقات المحدّدة فيCartfile
إلى أحدث إصدار.
التثبيت يدويًا
يوضح هذا الدليل كيفية إضافة إطار عمل أماكن Google إلى مشروعك يدويًا وتهيئة إعدادات الإصدار في Xcode.
- نزِّل ملفات المصدر لحزمة تطوير البرامج (SDK): GooglePlaces-7.4.0
- فك ضغط ملفات المصدر.
- شغّل Xcode وافتَح مشروعًا حاليًا أو أنشئ مشروعًا جديدًا. إذا كنت مستخدمًا جديدًا في مجال تطوير نظام التشغيل iOS، فأنشئ مشروعًا جديدًا وحدد نموذج تطبيق iOS.
- أزِل أي حِزم خرائط من الإصدارات السابقة من مشروعك.
- اسحب الحِزم التالية إلى مشروعك (عند الطلب، اختَر
نسخ العناصر إذا لزم الأمر):
GooglePlaces-x.x.x/Frameworks/GooglePlaces.xcframework
- انقر بزر الماوس الأيمن على
GooglePlaces.xcframework
في مشروعك، واختر إظهار في الباحث. - اسحب
GooglePlaces.bundle
من مجلدResources
إلى مشروعك. تأكد من عدم اختيار نسخ العناصر إلى مجلد المجموعة الوجهة عندما يُطلب منك ذلك. - اختَر مشروعك من Project Navigator، واختَر هدف تطبيقك.
- افتح علامة التبويب إنشاء مراحل وضمن ربط برنامج ثنائي باستخدام المكتبات، أضِف إطارات العمل والمكتبات التالية:
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
اختَر مشروعك، وليس هدفًا محدّدًا، وافتح علامة التبويب إعدادات الإصدار.
- في القسم علامات رابط أخرى، أضِف
-ObjC
. إذا لم تكن هذه الإعدادات مرئية، فغيّر الفلتر في شريط إعدادات الإصدار من أساسي إلى الكل.
تثبيت XCFramework
XCFramework هي حزمة ثنائية يمكنك استخدامها على أنظمة أساسية متعددة، بما في ذلك الأجهزة التي تستخدم مجموعة شرائح M1، لتثبيت الأماكن SDK لنظام التشغيل iOS. يوضح هذا الدليل كيفية إضافة XCFramework الذي يحتوي على الأماكن SDK لنظام التشغيل iOS إلى مشروعك وتهيئة إعدادات الإصدار في Xcode.
قرطاج
تتوفر حزمة تطوير البرامج (SDK) لأماكن iOS للاستخدام مع Carthage، وهو عبارة عن مدير تبعي لامركزي بسيط لمشاريع Swift وGoal-C Cocoa.
- ثبّت قرطاج. هناك عدة طرق، لذا اطّلِع على ملف قرطاج README لمعرفة الخطوات الدقيقة.
- إذا لم يكن لديك مشروع Xcode حتى الآن، يمكنك إنشاء مشروع الآن وحفظه على جهازك المحلي. في حال كنت مستخدمًا جديدًا في مرحلة تطوير نظام التشغيل iOS، يمكنك إنشاء مشروع جديد واختيار نموذج تطبيق iOS.
- أنشئ ملفًا باسم
Cartfile
في دليل مشروعك. يحدّد هذا الملف تبعيات مشروعك. يمكنك تعديل
Cartfile
وإضافة العناصر التابعة لك إلى جانب إصداراتها:binary "https://dl.google.com/geosdk/GooglePlaces.json" == 6.2.1-beta
- احفظ
Cartfile
. في نافذة محطة دفع، انتقِل إلى الدليل الذي يحتوي على
Cartfile
:cd <path-to-project>
- شغّل الأمر
carthage update
. سيؤدي هذا إلى تثبيت واجهات برمجة التطبيقات المحدّدة فيCartfile
، بالإضافة إلى أي ملحقات قد تكون مرتبطة بها. - في "الباحث"، في دليل المشروع، انتقِل إلى ملفات أُطر العمل التي تم تنزيلها
ضمن
Carthage/Build
. - اسحب عنصر XCFramework التالي إلى مشروعك ضمن الإطارات والمكتبات والمحتوى المضمَّن. تأكّد من اختيار عدم التضمين:
GooglePlaces-x.x.x/GooglePlaces.xcframework
- انقر بزر الماوس الأيمن على
GooglePlaces.xcframework
في مشروعك، واختَر إظهار في الباحث. - اسحب
GooglePlaces.bundle
من مجلدios-arm64/GooglePlaces.framework/Resources
إلى دليل المستوى الأعلى لمشروع Xcode. تأكَّد من عدم اختيار نسخ العناصر إلى مجلد المجموعة الوجهة عندما يُطلب منك ذلك. - اختَر مشروعك من Project Navigator، واختَر هدف تطبيقك.
- افتح علامة التبويب إنشاء مراحل وضمن الربط الثنائي مع المكتبات، ثم أضِف إطارات العمل والمكتبات التالية:
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
اختَر مشروعك، وليس هدفًا محدّدًا، وافتح علامة التبويب إعدادات الإصدار.
- في القسم علامات رابط أخرى، أضِف
-ObjC
. إذا لم تكن هذه الإعدادات مرئية، فغيّر الفلتر في شريط إعدادات الإصدار من أساسي إلى الكل.
يدويًا
يوضح هذا الدليل كيفية إضافة حزمة تطوير البرامج (SDK) للخرائط لنظام التشغيل iOS إلى مشروعك يدويًا وتهيئة إعدادات الإصدار في Xcode.
- نزِّل ملفات المصدر لحزمة تطوير البرامج (SDK): GooglePlaces-7.4.0.
- فك ضغط ملفات المصدر. انتقل إلى مجلد Frameworks للوصول إلى XCFramework.
- شغّل Xcode وافتَح مشروعًا حاليًا أو أنشئ مشروعًا جديدًا. إذا كنت تستخدم نظام التشغيل iOS لأول مرة، أنشئ مشروعًا جديدًا واختَر نموذج تطبيق iOS.
- اسحب عنصر XCFramework التالي إلى مشروعك ضمن الإطارات والمكتبات والمحتوى المضمَّن. تأكّد من اختيار عدم التضمين:
GooglePlaces-x.x.x/GooglePlaces.xcframework
- انقر بزر الماوس الأيمن على
GooglePlaces.xcframework
في مشروعك، واختَر إظهار في الباحث. - اسحب
GooglePlaces.bundle
من مجلدios-arm64/GooglePlaces.framework/Resources
إلى دليل المستوى الأعلى لمشروع Xcode. تأكَّد من عدم اختيار نسخ العناصر إلى مجلد المجموعة الوجهة عندما يُطلب منك ذلك. - اختَر مشروعك من Project Navigator، واختَر هدف تطبيقك.
- افتح علامة التبويب إنشاء مراحل وضمن الربط الثنائي مع المكتبات، ثم أضِف إطارات العمل والمكتبات التالية:
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
اختَر مشروعك، وليس هدفًا محدّدًا، وافتح علامة التبويب إعدادات الإصدار.
- في القسم علامات رابط أخرى، أضِف
-ObjC
. إذا لم تكن هذه الإعدادات مرئية، فغيّر الفلتر في شريط إعدادات الإصدار من أساسي إلى الكل.
الخطوة 3: إضافة مفتاح واجهة برمجة التطبيقات إلى تطبيقك
في الأمثلة التالية، استبدل YOUR_API_KEY
بمفتاح واجهة برمجة التطبيقات.
Swift
أضِف مفتاح واجهة برمجة التطبيقات إلى AppDelegate.swift
على النحو التالي:
- أضِف عبارة الاستيراد التالية:
import GooglePlaces
- أضِف ما يلي إلى طريقة
application(_:didFinishLaunchingWithOptions:)
، مع استبدال YOUR_API_KEY بمفتاح واجهة برمجة التطبيقات:GMSPlacesClient.provideAPIKey("YOUR_API_KEY")
Objective-C
أضِف مفتاح واجهة برمجة التطبيقات إلى AppDelegate.m
على النحو التالي:
- أضِف عبارة الاستيراد التالية:
@import GooglePlaces;
- أضِف ما يلي إلى طريقة
application:didFinishLaunchingWithOptions:
، مع استبدال YOUR_API_KEY بمفتاح واجهة برمجة التطبيقات:[GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
الخطوة الرابعة: بدء كتابة الشفرة
توضح نماذج الشفرة التالية كيفية الحصول على المكان الحالي.
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
الخطوات التالية
بعد تهيئة مشروعك، يمكنك استكشاف نماذج التطبيقات. ستحتاج إلى تثبيت Cocoapods v1.6.1.