برای ادغام Navigation SDK برای iOS در یک برنامه iOS، این راهنما را دنبال کنید.
پیش نیازها
- قبل از شروع استفاده از Navigation SDK برای iOS، به پروژهای نیاز دارید که حساب صورتحساب داشته باشد و Maps SDK برای iOS فعال باشد. توصیه میکنیم چندین مالک پروژه و سرپرست صورتحساب ایجاد کنید تا همیشه فردی با این نقشها در دسترس تیمتان باشد. برای کسب اطلاعات بیشتر، به تنظیم پروژه Google Cloud خود مراجعه کنید.
- برای ساختن یک پروژه با استفاده از Navigation SDK برای iOS، به نسخه 15.0 یا جدیدتر Xcode نیاز دارید.
- حداقل نسخه هدف iOS برای SDK ناوبری 14.0 است.
SDK را نصب کنید
مدیر بسته سوئیفت
Navigation SDK را می توان از طریق Swift Package Manager نصب کرد. برای افزودن SDK، مطمئن شوید که وابستگیهای موجود در SDK ناوبری را حذف کردهاید.
برای افزودن SDK به یک پروژه جدید یا موجود، مراحل زیر را دنبال کنید:
-
project
یاworkspace
Xcode خود را باز کنید، سپس به File > Add Package Dependencies بروید. - https://github.com/googlemaps/ios-navigation-sdk را به عنوان URL وارد کنید، Enter را فشار دهید تا بسته را وارد کنید و روی «افزودن بسته» کلیک کنید.
- برای نصب یک
version
خاص، قسمت Dependency Rule را روی یکی از گزینه های مبتنی بر نسخه تنظیم کنید. برای پروژه های جدید، توصیه می کنیم آخرین نسخه را مشخص کنید و از گزینه "نسخه دقیق" استفاده کنید. پس از تکمیل، روی "افزودن بسته" کلیک کنید. - از پنجره انتخاب محصولات بسته ، تأیید کنید که
GoogleNavigation
به هدفmain
تعیینشده شما اضافه میشود. پس از تکمیل، روی "افزودن بسته" کلیک کنید. - برای تأیید نصب خود، به صفحه
General
هدف خود بروید. در Frameworks، Libraries و Embedded Content باید بسته های نصب شده را ببینید. همچنین میتوانید برای تأیید بسته و نسخه آن، بخش «وابستگیهای بسته» در «ناوبر پروژه» را مشاهده کنید.
برای به روز رسانی package
برای یک پروژه موجود، این مراحل را دنبال کنید:
- از Xcode، به "File > Packages > Update To Latest Package Versions" بروید.
- برای تأیید نصب خود، به بخش Package Dependencies در Project Navigator بروید تا بسته و نسخه آن را تأیید کنید.
برای حذف وابستگیهای Navigation SDK موجود با استفاده از 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 را پیدا کنید. برای حذف چارچوب زیر از علامت منفی (-) استفاده کنید:
-
GoogleMaps.xcframework
-
GoogleMapsBase.xcframework
-
GoogleMapsCore.xcframework
-
GoogleNavigation.xcframework
-
- از دایرکتوری سطح بالای پروژه Xcode خود، بسته
GoogleMaps
حذف کنید.
CocoaPods
Navigation SDK برای iOS به عنوان یک CocoaPods در دسترس است. CocoaPods یک مدیر وابستگی منبع باز برای پروژه های Swift و Objective-C Cocoa است.
اگر از قبل ابزار CocoaPods را ندارید، با اجرای دستور زیر از ترمینال، آن را روی macOS نصب کنید. برای جزئیات، به راهنمای شروع به کار CocoaPods مراجعه کنید.
sudo gem install cocoapods
یک Podfile
برای Navigation SDK برای iOS ایجاد کنید و از آن برای نصب API و وابستگی های آن استفاده کنید:
- اگر هنوز پروژه Xcode ندارید، اکنون یکی را ایجاد کرده و آن را در دستگاه محلی خود ذخیره کنید. اگر در توسعه iOS تازه کار هستید:
- یک پروژه جدید ایجاد کنید.
- iOS > قالب برنامه را انتخاب کنید.
- در صفحه گزینه های پروژه:
- نام پروژه را وارد کنید.
- مقدار فیلد شناسه Bundle را ثبت کنید. می توانید از این مقدار برای محدود کردن کلید API خود در زیر استفاده کنید.
- Interface پروژه را روی Storyboard قرار دهید.
- زبان را روی Swift یا Objective-C قرار دهید.
- یک فایل به نام
Podfile
در دایرکتوری پروژه خود ایجاد کنید. این فایل وابستگی های پروژه شما را تعریف می کند. -
Podfile
را ویرایش کنید و وابستگی های خود را به همراه نسخه های آنها اضافه کنید. در اینجا مثالی آورده شده است که شامل وابستگی مورد نیاز برای Navigation SDK برای iOS است: # مرجع نصب Cocoapods #source 'https://github.com/CocoaPods/Specs.git' platform :ios, '14.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GoogleNavigation', '5.3.1' 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
را به آخرین نسخه به روز می کند.
نصب دستی
این راهنما نحوه اضافه کردن دستی XCFrameworks حاوی Navigation SDK برای iOS و Maps SDK برای iOS را به پروژه خود و پیکربندی تنظیمات ساخت خود در Xcode نشان می دهد. XCFramework یک بسته باینری است که میتوانید از آن در چندین پلتفرم از جمله ماشینهایی که از چیپست M1 استفاده میکنند استفاده کنید.
برای نصب XCFrameworks برای Navigation SDK برای iOS و Maps SDK برای iOS این مراحل را دنبال کنید:
- فایل های باینری و منبع SDK زیر را دانلود کنید:
- Xcode را راه اندازی کنید و یک پروژه موجود را باز کنید یا یک پروژه جدید ایجاد کنید. اگر در iOS تازه کار هستید، یک پروژه جدید ایجاد کنید و الگوی برنامه iOS را انتخاب کنید.
- تمام مراجع نقشه ها، ناوبری و مکان های موجود را از پروژه حذف کنید.
- XCFrameworks زیر را به داخل پروژه خود در بخش Frameworks, Libraries, and Embedded Content بکشید تا Maps و Navigation SDK را نصب کنید (در صورت درخواست، کپی موارد را در صورت نیاز انتخاب کنید):
-
GoogleMaps.xcframework
-
GoogleMapsBase.xcframework
-
GoogleMapsCore.xcframework
-
GoogleNavigation.xcframework
-
-
GoogleMaps.bundle
را از GoogleMapsResources که دانلود کردهاید به دایرکتوری سطح بالای پروژه Xcode خود بکشید. هنگامی که از شما خواسته شد، اطمینان حاصل کنید که موارد کپی در صورت نیاز انتخاب شده است. -
GoogleNavigation.bundle
را از GoogleNavigationResources که دانلود کردهاید به فهرست سطح بالای پروژه Xcode خود بکشید. هنگامی که از شما خواسته شد، مطمئن شوید که موارد کپی در پوشه گروه مقصد انتخاب شده است. - پروژه خود را از Project Navigator انتخاب کنید و هدف برنامه خود را انتخاب کنید.
- تب Build Phases را باز کنید و در لینک باینری با کتابخانه ها ، چارچوب ها و کتابخانه های زیر را اضافه کنید:
-
Accelerate.framework
-
AudioToolbox.framework
-
AVFoundation.framework
-
Contacts.framework
-
CoreData.framework
-
CoreGraphics.framework
-
CoreImage.framework
-
CoreLocation.framework
-
CoreTelephony.framework
-
CoreText.framework
-
GLKit.framework
-
ImageIO.framework
-
libc++.tbd
-
libxml2.tbd
-
libz.tbd
-
Metal.framework
-
OpenGLES.framework
-
QuartzCore.framework
-
Security.framework
-
SystemConfiguration.framework
-
UIKit.framework
-
UserNotifications.framework
-
WebKit.framework
-
- در هدف برنامه خود، برگه قابلیت ها را انتخاب کنید، حالت های پس زمینه را روشن کنید و حالت های زیر را فعال کنید:
- صدا، پخش و تصویر در تصویر
- به روز رسانی مکان
- پروژه خود را به جای یک هدف خاص انتخاب کنید و تب Build Settings را باز کنید. در بخش Other Linker Flags ،
‑ObjC
هم برای رفع اشکال و هم برای انتشار اضافه کنید. اگر این تنظیمات قابل مشاهده نیستند، فیلتر موجود در نوار تنظیمات ساخت را از Basic به All تغییر دهید. -
Info.plist
را باز کنید و جفت های کلید-مقدار زیر را اضافه کنید:- کلید:
NSLocationWhenInUseUsageDescription
( حریم خصوصی - موقعیت مکانی هنگام استفاده توضیحات استفاده )
مقدار: "این برنامه برای استفاده از موقعیت مکانی شما برای پیمایش گام به گام به مجوز نیاز دارد." - کلید:
NSLocationAlwaysAndWhenInUseUsageDescription
( حریم خصوصی - موقعیت مکانی همیشه و زمانی که در استفاده است توضیحات استفاده )
مقدار: "این برنامه برای استفاده از موقعیت مکانی شما برای پیمایش گام به گام به مجوز نیاز دارد."
- کلید:
فایل Manifest Privacy Apple را اضافه کنید
اپل به جزئیات حریم خصوصی برنامه برای برنامه های موجود در فروشگاه App نیاز دارد. برای بهروزرسانیها و اطلاعات بیشتر، از صفحه جزئیات حریم خصوصی فروشگاه App Apple دیدن کنید.
- بسته Manifest را برای Navigation SDK برای iOS دانلود کنید: GoogleNavigationPrivacy .
- برای دسترسی به
GoogleNavigationPrivacy.bundle
فایل را استخراج کنید. -
GoogleNavigationPrivacy.bundle
را با استفاده از یکی از این روش ها به ناوبری پروژه Xcode اضافه کنید. مطمئن شوید که کادر «افزودن به اهداف» برای هدف برنامه شما علامت زده شده است. پس از اضافه شدن، فایل PrivacyInfo در Project Navigator نمایش داده می شود و می توانید مقادیر را بررسی کنید. - با ایجاد یک بایگانی از برنامه خود و ایجاد یک گزارش حریم خصوصی از بایگانی، تأیید کنید که مانیفست حریم خصوصی اضافه شده است.
یک کلید API به پروژه خود اضافه کنید
مثال های زیر نشان می دهد که چگونه کلید API را در Xcode به پروژه خود اضافه کنید:
سریع
کلید API خود را به صورت زیر به AppDelegate.swift
خود اضافه کنید:
- دستورهای import زیر را اضافه کنید:
import GoogleMaps import GoogleNavigation
- موارد زیر را به
application(_:didFinishLaunchingWithOptions:)
خود اضافه کنید:GMSServices.provideAPIKey("YOUR_API_KEY")
هدف-C
کلید API خود را به صورت زیر به AppDelegate.m
خود اضافه کنید:
- دستورهای import زیر را اضافه کنید:
@import GoogleMaps; @import GoogleNavigation;
- موارد زیر را به
application:didFinishLaunchingWithOptions:
روش:[GMSServices provideAPIKey:@"YOUR_API_KEY"];
یک نقشه اضافه کنید
این کد نحوه افزودن یک نقشه ساده به ViewController
موجود را نشان می دهد، از جمله برخی تنظیمات اولیه برای پیمایش.
قبل از اینکه ناوبری فعال شود، کاربر باید با شرایط و ضوابط موافقت کند. برای درخواست از کاربر، با GMSNavigationServices.showTermsAndConditionsDialogIfNeeded()
تماس بگیرید، سپس بررسی کنید که آیا شرایط پذیرفته شده است یا خیر. اگر کاربر شرایط را رد کند، mapView.isNavigationEnabled = true
تاثیری ندارد و mapView.navigator
صفر است.
سریع
import UIKit import GoogleNavigation class ViewController: UIViewController { var mapView: GMSMapView! var locationManager: CLLocationManager! override func loadView() { locationManager = CLLocationManager() locationManager.requestAlwaysAuthorization() let camera = GMSCameraPosition.camera(withLatitude: 47.67, longitude: -122.20, zoom: 14) mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera) // Show the terms and conditions. let companyName = "Ride Sharing Co." GMSNavigationServices.showTermsAndConditionsDialogIfNeeded( withCompanyName: companyName) { termsAccepted in if termsAccepted { // Enable navigation if the user accepts the terms. self.mapView.isNavigationEnabled = true } else { // Handle the case when the user rejects the terms and conditions. } } view = mapView } // TODO: Add navigation code. }
هدف-C
#import "ViewController.h" @import GoogleNavigation; @interface ViewController () @end @implementation ViewController GMSMapView *_mapView; CLLocationManager *_locationManager; - (void)loadView { _locationManager = [[CLLocationManager alloc] init]; [_locationManager requestAlwaysAuthorization]; GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:47.67 longitude:-122.20 zoom:14]; _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; // Show the terms and conditions. NSString *companyName = @"Ride Sharing Co."; [GMSNavigationServices showTermsAndConditionsDialogIfNeededWithCompanyName:companyName callback:^(BOOL termsAccepted) { if (termsAccepted) { // Enable navigation if the user accepts the terms. _mapView.navigationEnabled = YES; } else { // Handle the case when the user rejects the terms and conditions. } }]; self.view = _mapView; } // TODO: Add navigation code. @end
اپلیکیشن خود را اجرا کنید شما باید نقشه ای را در مرکز کرکلند، واشنگتن ببینید. اگر نقشه قابل مشاهده نیست، تأیید کنید که کلید API صحیح را ارائه کرده اید.
اگر مشتری Mobility Services هستید
اگر مشتری Mobility Services هستید، در مورد صورتحساب در اسناد Mobility اطلاعات کسب کنید. برای اطلاعات بیشتر درباره ثبت تراکنشها، به تنظیم صورتحساب مراجعه کنید. برای آشنایی با نحوه افزودن شناسههای تراکنش به پیادهسازی Navigation SDK، به مرتبط کردن استفاده از سرویس خود با تراکنشهای Mobility مراجعه کنید.