iOS ऐप्लिकेशन में iOS के लिए नेविगेशन SDK टूल को इंटिग्रेट करने के लिए इस गाइड का पालन करें.
ज़रूरी शर्तें
- iOS के लिए नेविगेशन SDK टूल का इस्तेमाल शुरू करने से पहले, आपको एक ऐसा प्रोजेक्ट बनाना होगा जिसमें बिलिंग खाता हो और iOS के लिए Maps SDK टूल चालू हो. हमारा सुझाव है कि प्रोजेक्ट के लिए एक से ज़्यादा मालिक और बिलिंग एडमिन बनाएं, ताकि आपकी टीम के पास इन भूमिकाओं के लिए हमेशा कोई न कोई व्यक्ति उपलब्ध हो. ज़्यादा जानने के लिए, अपना Google Cloud प्रोजेक्ट सेट अप करना देखें.
- iOS के लिए, नेविगेशन SDK टूल का इस्तेमाल करके प्रोजेक्ट बनाने के लिए, आपके पास Xcode का 15.0 या उसके बाद का वर्शन होना चाहिए.
- नेविगेशन SDK टूल का टारगेट iOS वर्शन कम से कम 14.0 होना चाहिए.
SDK टूल इंस्टॉल करें
स्विफ़्ट पैकेज मैनेजर
नेविगेशन SDK टूल को Swift Package Manager से इंस्टॉल किया जा सकता है. SDK टूल जोड़ने के लिए, पक्का करें कि आपने सभी मौजूदा नेविगेशन SDK डिपेंडेंसी हटा दी हों.
SDK टूल को किसी नए या मौजूदा प्रोजेक्ट में जोड़ने के लिए, यह तरीका अपनाएं:
-
अपना Xcode
project
याworkspace
खोलें. इसके बाद, फ़ाइल > पैकेज डिपेंडेंसी जोड़ें पर जाएं. - यूआरएल के तौर पर, https://github.com/googlemaps/ios-navigation-sdk डालें, पैकेज पाने के लिए Enter दबाएं, और "पैकेज जोड़ें" पर क्लिक करें.
-
किसी खास
version
को इंस्टॉल करने के लिए, डिपेंडेंसी नियम फ़ील्ड को वर्शन-आधारित विकल्पों में से किसी एक पर सेट करें. नए प्रोजेक्ट के लिए, हमारा सुझाव है कि आप सबसे नया वर्शन तय करें. साथ ही, "एग्ज़ैक्ट वर्शन" विकल्प इस्तेमाल करें. यह प्रोसेस पूरी होने के बाद, "पैकेज जोड़ें" पर क्लिक करें. -
पैकेज के प्रॉडक्ट चुनें विंडो से, पुष्टि करें कि
GoogleNavigation
को आपके तय किए गएmain
टारगेट में जोड़ दिया जाएगा. यह प्रोसेस पूरी होने के बाद, "पैकेज जोड़ें" पर क्लिक करें. -
अपने इंस्टॉलेशन की पुष्टि करने के लिए, अपने टारगेट के
General
पैनल पर जाएं. फ़्रेमवर्क, लाइब्रेरी, और एम्बेड किए गए कॉन्टेंट में, आपको इंस्टॉल किए गए पैकेज दिखेंगे. पैकेज और उसके वर्शन की पुष्टि करने के लिए, "Project Navigator" के "पैकेज डिपेंडेंसी" सेक्शन में भी देखा जा सकता है.
किसी मौजूदा प्रोजेक्ट के लिए, package
को अपडेट करने के लिए, यह तरीका अपनाएं:
- Xcode से, "फ़ाइल > पैकेज > सबसे नए पैकेज वर्शन में अपडेट करें" पर जाएं.
- अपने इंस्टॉलेशन की पुष्टि करने के लिए, प्रोजेक्ट नेविगेटर के पैकेज डिपेंडेंसी सेक्शन में जाकर पैकेज और उसके वर्शन की पुष्टि करें.
CocoaPods
का इस्तेमाल करके जोड़ी गई मौजूदा नेविगेशन SDK डिपेंडेंसी हटाने के लिए, यह तरीका अपनाएं:
- Xcode के फ़ाइल फ़ोल्डर को बंद करें. टर्मिनल खोलें और यह निर्देश दें:
sudo gem install cocoapods-deintegrate cocoapods-clean pod deintegrate pod cache clean --all
-
अगर
Podfile
,Podfile.resolved
, और Xcodeworkspace
को CocoaPod के अलावा किसी और काम के लिए इस्तेमाल नहीं किया जा रहा है, तो उन्हें हटा दें.
-
अपने Xcode प्रोजेक्ट की कॉन्फ़िगरेशन सेटिंग में जाकर, फ़्रेमवर्क, लाइब्रेरी,
और एम्बेड किया गया कॉन्टेंट ढूंढें. नीचे दिए गए फ़्रेमवर्क को हटाने के लिए, माइनस के निशान(-) का इस्तेमाल करें:
GoogleMaps.xcframework
GoogleMapsBase.xcframework
GoogleMapsCore.xcframework
GoogleNavigation.xcframework
-
अपने Xcode प्रोजेक्ट की टॉप लेवल डायरेक्ट्री से,
GoogleMaps
बंडल हटाएं.
CocoaPods
iOS के लिए नेविगेशन SDK टूल, CocoaPods पॉड के तौर पर उपलब्ध है. CocoaPods, Swift और Objective-C Cocoa प्रोजेक्ट के लिए एक ओपन सोर्स डिपेंडेंसी मैनेजर है.
अगर आपके पास पहले से CocoaPods टूल नहीं है, तो इसे macOS पर इंस्टॉल करें. इसके लिए, टर्मिनल से यह कमांड दें. ज़्यादा जानकारी के लिए, CocoaPods के शुरुआती निर्देश देखें.
sudo gem install cocoapods
iOS के लिए, नेविगेशन SDK टूल के लिए Podfile
बनाएं. इसके बाद, एपीआई और इसकी डिपेंडेंसी को इंस्टॉल करने के लिए इसका इस्तेमाल करें:
- अगर आपके पास अब तक कोई Xcode प्रोजेक्ट नहीं है, तो अभी एक प्रोजेक्ट बनाएं और उसे अपने लोकल मशीन में
सेव करें. अगर आपने हाल ही में iOS डेवलपमेंट का इस्तेमाल करना शुरू किया है:
- कोई नया प्रोजेक्ट बनाएं.
- iOS > ऐप्लिकेशन टेंप्लेट चुनें.
- प्रोजेक्ट के विकल्पों वाली स्क्रीन पर:
- प्रोजेक्ट का नाम डालें.
- बंडल आइडेंटिफ़ायर फ़ील्ड की वैल्यू रिकॉर्ड करें. अपनी एपीआई कुंजी पर पाबंदी लगाने के लिए, नीचे दी गई वैल्यू का इस्तेमाल करें.
- प्रोजेक्ट के इंटरफ़ेस को स्टोरीबोर्ड पर सेट करें.
- Language को Swift या Objective-C पर सेट करें.
- अपनी प्रोजेक्ट डायरेक्ट्री में,
Podfile
नाम की फ़ाइल बनाएं. इस फ़ाइल में आपके प्रोजेक्ट की डिपेंडेंसी के बारे में बताया गया है. Podfile
में बदलाव करें और उनके versions के साथ अपनी डिपेंडेंसी जोड़ें. यहां एक उदाहरण दिया गया है, जिसमें यह भी शामिल है कि iOS के लिए नेविगेशन SDK टूल के लिए, आपको किस डिपेंडेंसी की ज़रूरत होती है: # 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
निर्देश चलाएं. यह,Podfile
में बताए गए एपीआई को सभी डिपेंडेंसी के साथ इंस्टॉल करता है.pod install
Xcode को बंद करें और फिर Xcode को लॉन्च करने के लिए, अपने प्रोजेक्ट की
.xcworkspace
फ़ाइल खोलें (दो बार क्लिक करें). इसके बाद, प्रोजेक्ट खोलने के लिए आपको.xcworkspace
फ़ाइल का इस्तेमाल करना होगा.
अगर आपको किसी मौजूदा प्रोजेक्ट के लिए एपीआई अपडेट करना है, तो यह तरीका अपनाएं:
- कोई टर्मिनल खोलें और
Podfile
वाली प्रोजेक्ट डायरेक्ट्री पर जाएं. pod update
निर्देश चलाएं. इससेPodfile
में बताए गए सभी एपीआई को सबसे नए वर्शन में अपडेट कर दिया जाता है.
मैन्युअल तरीके से इंस्टॉल करना
इस गाइड में मैन्युअल तरीके से उन XCFrameworks को जोड़ने का तरीका बताया गया है जिनमें iOS के लिए नेविगेशन SDK टूल और iOS के लिए Maps SDK टूल शामिल हैं. साथ ही, Xcode में बिल्ड सेटिंग कॉन्फ़िगर करने का तरीका भी बताया गया है. XCFramework एक बाइनरी पैकेज है, जिसे कई प्लैटफ़ॉर्म पर इस्तेमाल किया जा सकता है. इनमें M1 चिपसेट का इस्तेमाल करने वाली मशीनें भी शामिल हैं
iOS के लिए नेविगेशन SDK टूल के लिए XCFrameworks और iOS के लिए Maps SDK टूल को इंस्टॉल करने के लिए, यह तरीका अपनाएं:
- SDK टूल की इन बाइनरी और रिसॉर्स फ़ाइलों को डाउनलोड करें:
- Xcode लॉन्च करें और कोई मौजूदा प्रोजेक्ट खोलें या नया प्रोजेक्ट बनाएं. अगर आपने iOS का इस्तेमाल पहले कभी नहीं किया है, तो एक नया प्रोजेक्ट बनाएं और iOS ऐप्लिकेशन का टेंप्लेट चुनें.
- प्रोजेक्ट से सभी मौजूदा मैप, नेविगेशन, और जगहें रेफ़रंस हटाएं.
- Maps और नेविगेशन SDK टूल, दोनों को इंस्टॉल करने के लिए,
फ़्रेमवर्क, लाइब्रेरी, और एम्बेड किए गए कॉन्टेंट में XCFramework को अपने प्रोजेक्ट में खींचें और छोड़ें.
जब आपसे कहा जाए, तब ज़रूरी होने पर आइटम कॉपी करें चुनें:
GoogleMaps.xcframework
GoogleMapsBase.xcframework
GoogleMapsCore.xcframework
GoogleNavigation.xcframework
- डाउनलोड किए गए GoogleMapsResources से
GoogleMaps.bundle
को अपने Xcode प्रोजेक्ट की टॉप लेवल डायरेक्ट्री में खींचें और छोड़ें. जब कहा जाए, तब पक्का करें कि ज़रूरी होने पर आइटम कॉपी करें चुना गया हो. - डाउनलोड किए गए GoogleNavigationResources से
GoogleNavigation.bundle
को अपने Xcode प्रोजेक्ट की टॉप लेवल डायरेक्ट्री में खींचें और छोड़ें. जब कहा जाए, तब पक्का करें कि डेस्टिनेशन ग्रुप के फ़ोल्डर में आइटम कॉपी करें चुना गया हो. - प्रोजेक्ट नेविगेटर से अपना प्रोजेक्ट चुनें और ऐप्लिकेशन का टारगेट चुनें.
- बिल्ड चरण टैब खोलें और
बाइनरी को लाइब्रेरी से लिंक करें सेक्शन में, नीचे दिए गए फ़्रेमवर्क और लाइब्रेरी जोड़ें:
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
- अपने ऐप्लिकेशन के टारगेट में, क्षमता टैब चुनें,
बैकग्राउंड मोड चालू करें, और नीचे दिए गए मोड चालू करें:
- ऑडियो, AirPlay, और पिक्चर में पिक्चर
- जगह की जानकारी के अपडेट
- खास टारगेट के बजाय अपना प्रोजेक्ट चुनें और बिल्ड
सेटिंग टैब खोलें. अन्य लिंकर फ़्लैग सेक्शन में,
डीबग और रिलीज़, दोनों के लिए
‑ObjC
जोड़ें. अगर ये सेटिंग नहीं दिख रही हैं, तो बिल्ड सेटिंग बार में फ़िल्टर को बेसिक से सभी में बदलें. Info.plist
खोलें और नीचे दिए गए की-वैल्यू पेयर जोड़ें:- कुंजी:
NSLocationWhenInUseUsageDescription
(निजता - इस्तेमाल के दौरान जगह की जानकारी)
वैल्यू: "इस ऐप्लिकेशन को मोड़-दर-मोड़ नेविगेशन के लिए आपकी जगह की जानकारी का इस्तेमाल करने की अनुमति चाहिए." - कुंजी:
NSLocationAlwaysAndWhenInUseUsageDescription
(निजता - जगह की जानकारी हमेशा और इस्तेमाल में होने पर इस्तेमाल की जानकारी)
वैल्यू: "इस ऐप्लिकेशन को मोड़-दर-मोड़ नेविगेशन के लिए आपकी जगह की जानकारी का इस्तेमाल करने की अनुमति चाहिए."
- कुंजी:
Apple की निजता मेनिफ़ेस्ट फ़ाइल जोड़ें
Apple को App Store पर मौजूद ऐप्लिकेशन के लिए, ऐप्लिकेशन की निजता जानकारी की ज़रूरत होती है. अपडेट और ज़्यादा जानकारी के लिए, Apple App Store के निजता की ज़्यादा जानकारी वाले पेज पर जाएं.
- iOS के लिए, नेविगेशन SDK टूल के लिए प्राइवसी मेनिफ़ेस्ट बंडल डाउनलोड करें: GoogleNavigationPrivacy.
GoogleNavigationPrivacy.bundle
को ऐक्सेस करने के लिए फ़ाइल निकालें.- इनमें से किसी एक तरीके का इस्तेमाल करके,
GoogleNavigationPrivacy.bundle
को Xcode प्रोजेक्ट नेविगेटर में जोड़ें. पक्का करें कि आपके ऐप्लिकेशन के टारगेट के लिए, "टारगेट में जोड़ें" बॉक्स चुना गया हो. जोड़े जाने के बाद, PrivacyInfo फ़ाइल, प्रोजेक्ट नेविगेटर में दिखती है और आपके पास वैल्यू की जांच करने का विकल्प होता है. - पुष्टि करें कि आपके ऐप्लिकेशन का संग्रह बनाकर और संग्रह से निजता रिपोर्ट जनरेट करके, निजता मेनिफ़ेस्ट को जोड़ा गया हो.
अपने प्रोजेक्ट में एपीआई पासकोड जोड़ना
नीचे दिए गए उदाहरणों में, Xcode में अपने प्रोजेक्ट में एपीआई पासकोड जोड़ने का तरीका बताया गया है:
Swift
अपने AppDelegate.swift
में अपनी एपीआई कुंजी इस तरह जोड़ें:
- यहां दिए गए इंपोर्ट स्टेटमेंट जोड़ें:
import GoogleMaps import GoogleNavigation
- अपने
application(_:didFinishLaunchingWithOptions:)
तरीके में यह तरीका जोड़ें:GMSServices.provideAPIKey("YOUR_API_KEY")
Objective-C
अपने AppDelegate.m
में अपनी एपीआई कुंजी इस तरह जोड़ें:
- यहां दिए गए इंपोर्ट स्टेटमेंट जोड़ें:
@import GoogleMaps; @import GoogleNavigation;
- अपने
application:didFinishLaunchingWithOptions:
तरीके में यह तरीका जोड़ें:[GMSServices provideAPIKey:@"YOUR_API_KEY"];
मैप जोड़ें
यह कोड बताता है कि मौजूदा ViewController
में एक आसान मैप कैसे जोड़ा जाए. इसमें नेविगेशन के लिए कुछ शुरुआती सेटिंग भी शामिल हैं.
नेविगेशन चालू करने से पहले, उपयोगकर्ता को नियमों और शर्तों से सहमत होना होगा. उपयोगकर्ता को सूचना देने के लिए, GMSNavigationServices.showTermsAndConditionsDialogIfNeeded()
पर कॉल करें. इसके बाद, देखें कि शर्तें स्वीकार की गई हैं या नहीं. अगर उपयोगकर्ता इन शर्तों को अस्वीकार कर देता है, तो mapView.isNavigationEnabled = true
का कोई असर नहीं होता और mapView.navigator
शून्य होता है.
Swift
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. }
Objective-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
अपना ऐप्लिकेशन चलाएं. आपको कर्कलैंड, वाशिंग्टन के ऊपर एक मैप दिखेगा. अगर मैप नहीं दिख रहा है, तो पक्का करें कि आपने सही एपीआई पासकोड उपलब्ध कराया हो.
अगर आप मोबिलिटी सेवाओं के ग्राहक हैं
अगर आप मोबिलिटी सेवाओं के ग्राहक हैं, तो मोबिलिटी दस्तावेज़ में बिलिंग के बारे में जानें. ट्रांज़ैक्शन रिकॉर्ड करने के बारे में ज़्यादा जानने के लिए, बिलिंग सेट अप करना देखें. नेविगेशन SDK टूल को लागू करने के तरीके में ट्रांज़ैक्शन आईडी जोड़ने का तरीका जानने के लिए, अपनी सेवा के इस्तेमाल को मोबिलिटी ट्रांज़ैक्शन से जोड़ना लेख पढ़ें.