پس از فعال کردن صورتحساب و ایجاد یک کلید API، آماده راه اندازی پروژه Xcode هستید که برای توسعه برنامه خود استفاده می کنید.
یادداشت های انتشار برای هر نسخه در دسترس هستند.
مرحله 1: نرم افزار مورد نیاز را نصب کنید
برای ساختن یک پروژه با استفاده از Places SDK برای iOS، شما نیاز دارید:
- Xcode نسخه 15.0 یا بالاتر
مرحله 2: پروژه Xcode را ایجاد کرده و Places SDK را برای iOS نصب کنید
مدیر بسته سوئیفت
Places SDK برای iOS را می توان از طریق Swift Package Manager نصب کرد. برای افزودن SDK، مطمئن شوید که هر مکان SDK موجود برای وابستگیهای iOS را حذف کردهاید.
برای افزودن SDK به یک پروژه جدید یا موجود، مراحل زیر را دنبال کنید:
-
project
یاworkspace
Xcode خود را باز کنید، سپس به File > Add Package Dependencies بروید. - https://github.com/googlemaps/ios-places-sdk را به عنوان URL وارد کنید، Enter را فشار دهید تا بسته را وارد کنید و روی «افزودن بسته» کلیک کنید.
- برای نصب یک
version
خاص، قسمت Dependency Rule را روی یکی از گزینه های مبتنی بر نسخه تنظیم کنید. برای پروژه های جدید، توصیه می کنیم آخرین نسخه را مشخص کنید و از گزینه "نسخه دقیق" استفاده کنید. پس از تکمیل، روی "افزودن بسته" کلیک کنید. - از پنجره انتخاب محصولات بسته ، تأیید کنید
GooglePlaces
به هدفmain
تعیینشده شما اضافه میشود. پس از تکمیل، روی "افزودن بسته" کلیک کنید. - برای تأیید نصب خود، به صفحه
General
هدف خود بروید. در Frameworks، Libraries و Embedded Content باید بسته های نصب شده را ببینید. همچنین میتوانید برای تأیید بسته و نسخه آن، بخش «وابستگیهای بسته» در «ناوبر پروژه» را مشاهده کنید.
برای به روز رسانی package
برای یک پروژه موجود، این مراحل را دنبال کنید:
- از Xcode، به "File > Packages > Update To Latest Package Versions" بروید.
- برای تأیید نصب خود، به بخش Package Dependencies در Project Navigator بروید تا بسته و نسخه آن را تأیید کنید.
برای حذف Places SDK موجود برای وابستگیهای iOS اضافه شده با استفاده از CocoaPods
، این مراحل را دنبال کنید:
- فضای کاری Xcode خود را ببندید. ترمینال را باز کنید و دستور زیر را اجرا کنید:
sudo gem install cocoapods-deintegrate cocoapods-clean pod deintegrate pod cache clean --all
- اگر از آنها برای چیزی غیر از CocoaPods استفاده نمی کنید،
Podfile
،Podfile.resolved
وworkspace
Xcode را حذف کنید.
- از تنظیمات پیکربندی پروژه Xcode خود، Frameworks، Libraries و Embedded Content را پیدا کنید. برای حذف چارچوب زیر از علامت منفی (-) استفاده کنید:
-
GooglePlaces.xcframework
-
- از فهرست سطح بالای پروژه Xcode خود، بسته
GooglePlaces
را حذف کنید.
کوکوپودها
Places SDK برای iOS بهعنوان یک CocoaPod pod، 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, '15.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GooglePlaces', '8.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
به آخرین نسخه به روز می شوند.
نصب دستی
این راهنما نشان می دهد که چگونه XCFramework حاوی Places SDK برای iOS را به صورت دستی به پروژه خود اضافه کنید و تنظیمات ساخت خود را در Xcode پیکربندی کنید. XCFramework یک بسته باینری است که میتوانید در چندین پلتفرم از جمله ماشینهایی که از سیلیکون اپل استفاده میکنند استفاده کنید.
- فایل های باینری و منبع SDK زیر را دانلود کنید:
- برای دسترسی به XCFramework و منابع، فایل ها را استخراج کنید.
- Xcode را راه اندازی کنید و یک پروژه موجود را باز کنید یا یک پروژه جدید ایجاد کنید. اگر در توسعه iOS جدیدتر هستید، یک پروژه جدید ایجاد کنید و الگوی برنامه iOS را انتخاب کنید.
- بستههای Maps را از نسخههای قبلی از پروژه خود حذف کنید.
- تب General را باز کنید. XCFramework زیر را به داخل پروژه خود در بخش Frameworks, Libraries, and Embedded Content بکشید. حتماً Do Not Embed را انتخاب کنید:
-
GooglePlaces.xcframework
-
-
GooglePlaces.bundle
را از GooglePlacesResources که دانلود کردهاید در فهرست سطح بالای پروژه Xcode خود کپی کنید. وقتی از شما خواسته شد، مطمئن شوید که موارد کپی در پوشه گروه مقصد را انتخاب کنید. - پروژه خود را از Project Navigator انتخاب کنید و هدف برنامه خود را انتخاب کنید.
- تب Build Phases را باز کنید. در لینک باینری با کتابخانه ها ، چارچوب ها و کتابخانه های زیر را اضافه کنید:
-
CoreGraphics.framework
-
CoreLocation.framework
-
libc++.tbd
-
libz.tbd
-
QuartzCore.framework
-
UIKit.framework
-
پروژه خود را به جای یک هدف خاص انتخاب کنید و تب Build Settings را باز کنید. در بخش Linking - General -> Other Linker Flags ،
-ObjC
به "Debug" و "Release" اضافه کنید. اگر این تنظیمات قابل مشاهده نیستند، فیلتر را در نوار تنظیمات ساخت از Basic به All تغییر دهید.
GooglePlaces.bundle
از GooglePlacesResources که دانلود کردید بکشیدفایل Manifest Privacy Apple را اضافه کنید
- بسته Manifest را برای Places SDK برای iOS دانلود کنید: GooglePlacesPrivacy .
- برای دسترسی به
GooglePlacesPrivacy.bundle
فایل را استخراج کنید. -
GooglePlacesPrivacy.bundle
در دایرکتوری سطح بالای پروژه Xcode خود کپی کنید.
مرحله 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 را نصب کنید.