مراحل این راهنما را برای دانلود Places SDK برای iOS، افزودن کتابخانه و وابستگی های آن به برنامه خود و دریافت یک کلید API بدون هزینه دنبال کنید.
یادداشت های انتشار برای هر نسخه در دسترس هستند.
مرحله 1: آخرین نسخه Xcode را دریافت کنید
برای ساختن یک پروژه با استفاده از Places SDK برای iOS، شما نیاز دارید:
مرحله 2: SDK را نصب کنید
برای نصب API در یک پروژه جدید، مراحل زیر را دنبال کنید:از کوکوپود استفاده کنید
Places SDK برای iOS بهعنوان یک غلاف CocoaPod ، GooglePlaces در دسترس است که شامل همه عملکردهای مکانها است.
CocoaPods یک مدیر وابستگی منبع باز برای پروژه های Swift و Objective-C Cocoa است. اگر از قبل ابزار CocoaPods را ندارید، با اجرای دستور زیر از ترمینال، آن را روی macOS نصب کنید. برای جزئیات، به راهنمای شروع به کار CocoaPods مراجعه کنید.
sudo gem install cocoapods
یک Podfile
برای Places SDK برای 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.3.0' end
مطمئن شوید که به طور منظمpod outdated
را اجرا کنید تا تشخیص دهید که نسخه جدیدتری وجود دارد تا مطمئن شوید که همیشه در آخرین نسخه هستید. -
Podfile
را ذخیره کنید. یک ترمینال را باز کنید و به دایرکتوری حاوی
Podfile
:cd <path-to-project>
دستور
pod install
را اجرا کنید. این API های مشخص شده درPodfile
را به همراه وابستگی هایی که ممکن است داشته باشند نصب می کند.pod install
Xcode را ببندید و سپس فایل
.xcworkspace
. پروژه خود را باز کنید (دوبار کلیک کنید) تا Xcode راه اندازی شود. از این زمان به بعد باید از فایل.xcworkspace
برای باز کردن پروژه استفاده کنید.
برای به روز رسانی API برای یک پروژه موجود، این مراحل را دنبال کنید:
- یک ترمینال را باز کنید و به فهرست پروژه حاوی
Podfile
. - دستور
pod update
را اجرا کنید. با این کار همه API های مشخص شده درPodfile
به آخرین نسخه به روز می شوند.
از کارتاژ استفاده کنید
Places SDK برای iOS برای استفاده با Carthage ، یک مدیر وابستگی ساده و غیرمتمرکز برای پروژههای Swift و Objective-C Cocoa در دسترس است.
- کارتاژ را نصب کنید. روش های مختلفی وجود دارد، بنابراین برای اطلاع از مراحل دقیق، فایل Carthage 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
را اجرا کنید. این API های مشخص شده درCartfile
را به همراه وابستگی هایی که ممکن است داشته باشند نصب می کند. - در Finder، در فهرست پروژه خود، به فایل های فریمورک دانلود شده در
Carthage/Build/iOS
بروید. - بستههای زیر را به پروژه خود بکشید (در صورت نیاز، کپی موارد را انتخاب کنید):
-
GooglePlaces-5.xx/Frameworks/GooglePlaces.framework
-
- در پروژه خود روی
GooglePlaces.framework
کلیک راست کرده و Show In Finder را انتخاب کنید. -
GooglePlaces.bundle
را از پوشهResources
به پروژه خود بکشید. هنگامی که از شما خواسته شد، مطمئن شوید که موارد کپی در پوشه گروه مقصد انتخاب نشده است. - پروژه خود را از Project Navigator انتخاب کنید و هدف برنامه خود را انتخاب کنید.
- تب Build Phases را باز کنید و در لینک باینری با کتابخانه ها ، چارچوب ها و کتابخانه های زیر را اضافه کنید:
-
CoreGraphics.framework
-
CoreLocation.framework
-
libc++.tbd
-
libz.tbd
-
QuartzCore.framework
-
UIKit.framework
-
پروژه خود را به جای یک هدف خاص انتخاب کنید و تب Build Settings را باز کنید.
- در بخش Other Linker Flags ،
-ObjC
را اضافه کنید. اگر این تنظیمات قابل مشاهده نیستند، فیلتر موجود در نوار تنظیمات ساخت را از Basic به All تغییر دهید.
برای به روز رسانی API برای یک پروژه موجود، این مراحل را دنبال کنید:
- یک ترمینال را باز کنید و به فهرست پروژه حاوی
Cartfile
. - دستور
carthage update
را اجرا کنید. این همه API های مشخص شده درCartfile
را به آخرین نسخه به روز می کند.
به صورت دستی نصب کنید
این راهنما نشان می دهد که چگونه به صورت دستی چارچوب GooglePlaces را به پروژه خود اضافه کنید و تنظیمات ساخت خود را در Xcode پیکربندی کنید.
- دانلود فایل های منبع SDK: GooglePlaces-7.3.0
- فایل های منبع را باز کنید.
- Xcode را راه اندازی کنید و یک پروژه موجود را باز کنید یا یک پروژه جدید ایجاد کنید. اگر در توسعه iOS جدیدتر هستید، یک پروژه جدید ایجاد کنید و الگوی برنامه iOS را انتخاب کنید.
- بستههای Maps را از نسخههای قبلی از پروژه خود حذف کنید.
- بستههای زیر را به پروژه خود بکشید (در صورت نیاز، کپی موارد را انتخاب کنید):
-
GooglePlaces-5.xx/Frameworks/GooglePlaces.framework
-
- در پروژه خود روی
GooglePlaces.framework
کلیک راست کرده و Show In Finder را انتخاب کنید. -
GooglePlaces.bundle
را از پوشهResources
به پروژه خود بکشید. هنگامی که از شما خواسته شد، مطمئن شوید که موارد کپی در پوشه گروه مقصد انتخاب نشده است. - پروژه خود را از Project Navigator انتخاب کنید و هدف برنامه خود را انتخاب کنید.
- تب Build Phases را باز کنید و در لینک باینری با کتابخانه ها ، چارچوب ها و کتابخانه های زیر را اضافه کنید:
-
CoreGraphics.framework
-
CoreLocation.framework
-
libc++.tbd
-
libz.tbd
-
QuartzCore.framework
-
UIKit.framework
-
پروژه خود را به جای یک هدف خاص انتخاب کنید و تب Build Settings را باز کنید.
- در بخش Other Linker Flags ،
-ObjC
را اضافه کنید. اگر این تنظیمات قابل مشاهده نیستند، فیلتر موجود در نوار تنظیمات ساخت را از Basic به All تغییر دهید.
XCFramework را نصب کنید
XCFramework یک بسته باینری است که میتوانید در چندین پلتفرم، از جمله ماشینهایی که از چیپست M1 استفاده میکنند، برای نصب Places SDK برای iOS استفاده کنید. این راهنما نشان می دهد که چگونه XCFramework حاوی Places SDK برای iOS را به پروژه خود اضافه کنید و تنظیمات ساخت خود را در Xcode پیکربندی کنید.
با کارتاژ
Places SDK برای iOS برای استفاده با Carthage ، یک مدیر وابستگی ساده و غیرمتمرکز برای پروژههای Swift و Objective-C Cocoa در دسترس است.
- کارتاژ را نصب کنید. روش های مختلفی وجود دارد، بنابراین برای اطلاع از مراحل دقیق، فایل Carthage 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
را اجرا کنید. این API های مشخص شده درCartfile
را به همراه وابستگی هایی که ممکن است داشته باشند نصب می کند. - در Finder، در فهرست پروژه خود، به فایل های فریمورک دانلود شده در
Carthage/Build
بروید. - XCFramework زیر را به داخل پروژه خود در بخش Frameworks, Libraries, and Embedded Content بکشید. حتماً Do Not Embed را انتخاب کنید:
-
GooglePlaces-xxx/GooglePlaces.xcframework
-
- روی
GooglePlaces.xcframework
در پروژه خود کلیک راست کرده و Show In Finder را انتخاب کنید. -
GooglePlaces.bundle
را از پوشهios-arm64/GooglePlaces.framework/Resources
به فهرست سطح بالای پروژه Xcode خود بکشید. هنگامی که از شما خواسته شد، مطمئن شوید که موارد کپی در پوشه گروه مقصد انتخاب نشده است. - پروژه خود را از Project Navigator انتخاب کنید و هدف برنامه خود را انتخاب کنید.
- تب Build Phases را باز کنید و در لینک باینری با کتابخانه ها ، چارچوب ها و کتابخانه های زیر را اضافه کنید:
-
CoreGraphics.framework
-
CoreLocation.framework
-
libc++.tbd
-
libz.tbd
-
QuartzCore.framework
-
UIKit.framework
-
پروژه خود را به جای یک هدف خاص انتخاب کنید و تب Build Settings را باز کنید.
- در بخش Other Linker Flags ،
-ObjC
را اضافه کنید. اگر این تنظیمات قابل مشاهده نیستند، فیلتر موجود در نوار تنظیمات ساخت را از Basic به All تغییر دهید.
به صورت دستی
این راهنما نشان می دهد که چگونه به صورت دستی Maps SDK برای iOS را به پروژه خود اضافه کنید و تنظیمات ساخت خود را در Xcode پیکربندی کنید.
- فایل های منبع SDK را بارگیری کنید: GooglePlaces-7.3.0 .
- فایل های منبع را باز کنید. برای دسترسی به XCFramework به پوشه Frameworks بروید.
- Xcode را راه اندازی کنید و یک پروژه موجود را باز کنید یا یک پروژه جدید ایجاد کنید. اگر در iOS تازه کار هستید، یک پروژه جدید ایجاد کنید و الگوی برنامه iOS را انتخاب کنید.
- XCFramework زیر را به داخل پروژه خود در بخش Frameworks, Libraries, and Embedded Content بکشید. حتماً Do Not Embed را انتخاب کنید:
-
GooglePlaces-xxx/GooglePlaces.xcframework
-
- روی
GooglePlaces.xcframework
در پروژه خود کلیک راست کرده و Show In Finder را انتخاب کنید. -
GooglePlaces.bundle
را از پوشهios-arm64/GooglePlaces.framework/Resources
به فهرست سطح بالای پروژه Xcode خود بکشید. هنگامی که از شما خواسته شد، مطمئن شوید که موارد کپی در پوشه گروه مقصد انتخاب نشده است. - پروژه خود را از Project Navigator انتخاب کنید و هدف برنامه خود را انتخاب کنید.
- تب Build Phases را باز کنید و در لینک باینری با کتابخانه ها ، چارچوب ها و کتابخانه های زیر را اضافه کنید:
-
CoreGraphics.framework
-
CoreLocation.framework
-
libc++.tbd
-
libz.tbd
-
QuartzCore.framework
-
UIKit.framework
-
پروژه خود را به جای یک هدف خاص انتخاب کنید و تب Build Settings را باز کنید.
- در بخش Other Linker Flags ،
-ObjC
را اضافه کنید. اگر این تنظیمات قابل مشاهده نیستند، فیلتر موجود در نوار تنظیمات ساخت را از Basic به All تغییر دهید.
مرحله 3: کلید API را به برنامه خود اضافه کنید
در مثالهای زیر، YOUR_API_KEY
را با کلید API خود جایگزین کنید.
سریع
کلید API خود را به صورت زیر به AppDelegate.swift
خود اضافه کنید:
- عبارت import زیر را اضافه کنید:
import GooglePlaces
- موارد زیر را به روش
application(_:didFinishLaunchingWithOptions:)
خود اضافه کنید و YOUR_API_KEY را با کلید API خود جایگزین کنید:GMSPlacesClient.provideAPIKey("YOUR_API_KEY")
هدف-C
کلید API خود را به صورت زیر به AppDelegate.m
خود اضافه کنید:
- عبارت import زیر را اضافه کنید:
@import GooglePlaces;
- موارد زیر را به
application:didFinishLaunchingWithOptions:
YOUR_API_KEY را با کلید API خود جایگزین کنید:[GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
مرحله 4: شروع به نوشتن کد کنید
نمونه کد زیر نحوه بدست آوردن مکان فعلی را نشان می دهد.
سریع
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 } } }
هدف-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 را نصب کنید.