अपना प्रोजेक्ट सेट अप करें

iOS ऐप्लिकेशन में iOS के लिए नेविगेशन SDK टूल को इंटिग्रेट करने के लिए इस गाइड का पालन करें.

ज़रूरी शर्तें

  • iOS के लिए नेविगेशन SDK टूल का इस्तेमाल शुरू करने से पहले, आपको एक ऐसा प्रोजेक्ट बनाना होगा जिसमें बिलिंग खाता हो और iOS के लिए Maps SDK टूल चालू हो. हमारा सुझाव है कि प्रोजेक्ट के लिए एक से ज़्यादा मालिक और बिलिंग एडमिन बनाएं, ताकि आपकी टीम के पास इन भूमिकाओं के लिए हमेशा कोई न कोई व्यक्ति उपलब्ध हो. ज़्यादा जानने के लिए, अपना Google Cloud प्रोजेक्ट सेट अप करना देखें.
  • iOS के लिए, नेविगेशन SDK टूल का इस्तेमाल करके प्रोजेक्ट बनाने के लिए, आपके पास Xcode का 15.0 या उसके बाद का वर्शन होना चाहिए.
  • नेविगेशन SDK टूल का टारगेट iOS वर्शन कम से कम 15.0 होना चाहिए.

पहला चरण: SDK टूल इंस्टॉल करें

स्विफ़्ट पैकेज मैनेजर

नेविगेशन SDK टूल को Swift Package Manager से इंस्टॉल किया जा सकता है. SDK टूल जोड़ने के लिए, पक्का करें कि आपने सभी मौजूदा नेविगेशन SDK डिपेंडेंसी हटा दी हों.

SDK टूल को किसी नए या मौजूदा प्रोजेक्ट में जोड़ने के लिए, यह तरीका अपनाएं:

  1. अपना Xcode project या workspace खोलें. इसके बाद, फ़ाइल > पैकेज डिपेंडेंसी जोड़ें पर जाएं.
  2. यूआरएल के तौर पर, https://github.com/googlemaps/ios-navigation-sdk डालें, पैकेज पाने के लिए Enter दबाएं, और "पैकेज जोड़ें" पर क्लिक करें.
  3. किसी खास version को इंस्टॉल करने के लिए, डिपेंडेंसी नियम फ़ील्ड को वर्शन-आधारित विकल्पों में से किसी एक पर सेट करें. नए प्रोजेक्ट के लिए, हमारा सुझाव है कि आप सबसे नया वर्शन तय करें. साथ ही, "एग्ज़ैक्ट वर्शन" विकल्प इस्तेमाल करें. यह प्रोसेस पूरी होने के बाद, "पैकेज जोड़ें" पर क्लिक करें.
  4. पैकेज के प्रॉडक्ट चुनें विंडो से, पुष्टि करें कि GoogleNavigation को आपके तय किए गए main टारगेट में जोड़ दिया जाएगा. यह प्रोसेस पूरी होने के बाद, "पैकेज जोड़ें" पर क्लिक करें.
  5. अपने इंस्टॉलेशन की पुष्टि करने के लिए, अपने टारगेट के General पैनल पर जाएं. फ़्रेमवर्क, लाइब्रेरी, और एम्बेड किए गए कॉन्टेंट में, आपको इंस्टॉल किए गए पैकेज दिखेंगे. पैकेज और उसके वर्शन की पुष्टि करने के लिए, "Project Navigator" के "पैकेज डिपेंडेंसी" सेक्शन में भी देखा जा सकता है.

किसी मौजूदा प्रोजेक्ट के लिए, package को अपडेट करने के लिए, यह तरीका अपनाएं:

  1. अगर आपको 9.0.0 से पहले के किसी वर्शन से अपग्रेड करना है,तो अपग्रेड करने के बाद आपको इन डिपेंडेंसी को हटा देना होगा: GoogleMapsBase, GoogleMapsCore, और GoogleMapsM4B. GoogleMaps के लिए डिपेंडेंसी न हटाएं. ज़्यादा जानकारी के लिए, वर्शन 9.0.0 के रिलीज़ नोट देखें.

    अपने Xcode प्रोजेक्ट की कॉन्फ़िगरेशन सेटिंग में जाकर, फ़्रेमवर्क, लाइब्रेरी, और एम्बेड किया गया कॉन्टेंट ढूंढें. नीचे दिए गए फ़्रेमवर्क को हटाने के लिए, माइनस के निशान(-) का इस्तेमाल करें:

    • GoogleMapsBase (सिर्फ़ 9.0.0 से पहले के वर्शन पर अपग्रेड करने के लिए)
    • GoogleMapsCore (सिर्फ़ 9.0.0 से पहले के वर्शन पर अपग्रेड करने के लिए)
    • GoogleMapsM4B (सिर्फ़ 9.0.0 से पहले के वर्शन पर अपग्रेड करने के लिए)
  2. Xcode से, "फ़ाइल > पैकेज > सबसे नए पैकेज वर्शन में अपडेट करें" पर जाएं.
  3. अपने इंस्टॉलेशन की पुष्टि करने के लिए, प्रोजेक्ट नेविगेटर के पैकेज डिपेंडेंसी सेक्शन में जाकर पैकेज और उसके वर्शन की पुष्टि करें.

CocoaPods का इस्तेमाल करके जोड़ी गई मौजूदा नेविगेशन SDK डिपेंडेंसी हटाने के लिए, यह तरीका अपनाएं:

  1. Xcode के फ़ाइल फ़ोल्डर को बंद करें. टर्मिनल खोलें और यह निर्देश दें:
    sudo gem install cocoapods-deintegrate cocoapods-clean 
    pod deintegrate 
    pod cache clean --all
  2. अगर Podfile, Podfile.resolved, और Xcode workspace को CocoaPod के अलावा किसी और काम के लिए इस्तेमाल नहीं किया जा रहा है, तो उन्हें हटा दें.

मैन्युअल तरीके से इंस्टॉल किए गए iOS के लिए, मौजूदा नेविगेशन SDK टूल को हटाने के लिए, यह तरीका अपनाएं:
  1. अपने Xcode प्रोजेक्ट की कॉन्फ़िगरेशन सेटिंग में जाकर, फ़्रेमवर्क, लाइब्रेरी, और एम्बेड किया गया कॉन्टेंट ढूंढें. नीचे दिए गए फ़्रेमवर्क को हटाने के लिए, माइनस के निशान(-) का इस्तेमाल करें:
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
    • GoogleNavigation.xcframework
  2. अपने Xcode प्रोजेक्ट की टॉप लेवल डायरेक्ट्री से, GoogleMaps बंडल हटाएं.

CocoaPods

iOS के लिए नेविगेशन SDK टूल, CocoaPods पॉड के तौर पर उपलब्ध है. CocoaPods, Swift और Objective-C Cocoa प्रोजेक्ट के लिए एक ओपन सोर्स डिपेंडेंसी मैनेजर है.

अगर आपके पास पहले से CocoaPods टूल नहीं है, तो इसे macOS पर इंस्टॉल करें. इसके लिए, टर्मिनल से यह कमांड दें. ज़्यादा जानकारी के लिए, CocoaPods के शुरुआती निर्देश देखें.

sudo gem install cocoapods

iOS के लिए, नेविगेशन SDK टूल के लिए Podfile बनाएं. इसके बाद, एपीआई और इसकी डिपेंडेंसी को इंस्टॉल करने के लिए इसका इस्तेमाल करें:

  1. अगर आपके पास अब तक कोई Xcode प्रोजेक्ट नहीं है, तो अभी एक प्रोजेक्ट बनाएं और उसे अपने लोकल मशीन में सेव करें. अगर आपने हाल ही में iOS डेवलपमेंट का इस्तेमाल करना शुरू किया है:
    1. कोई नया प्रोजेक्ट बनाएं.
    2. iOS > ऐप्लिकेशन टेंप्लेट चुनें.
    3. प्रोजेक्ट के विकल्पों वाली स्क्रीन पर:
      1. प्रोजेक्ट का नाम डालें.
      2. बंडल आइडेंटिफ़ायर फ़ील्ड की वैल्यू रिकॉर्ड करें. अपनी एपीआई कुंजी पर पाबंदी लगाने के लिए, नीचे दी गई वैल्यू का इस्तेमाल करें.
      3. प्रोजेक्ट के इंटरफ़ेस को स्टोरीबोर्ड पर सेट करें.
      4. Language को Swift या Objective-C पर सेट करें.
  2. अपनी प्रोजेक्ट डायरेक्ट्री में, Podfile नाम की फ़ाइल बनाएं. इस फ़ाइल में आपके प्रोजेक्ट की डिपेंडेंसी के बारे में बताया गया है.
  3. Podfile में बदलाव करें और उनके versions के साथ अपनी डिपेंडेंसी जोड़ें. यहां एक उदाहरण दिया गया है, जिसमें यह भी शामिल है कि iOS के लिए नेविगेशन SDK टूल के लिए, आपको किस डिपेंडेंसी की ज़रूरत होती है: # Cocoapods इंस्टॉल रेफ़रंस #
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '15.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GoogleNavigation', '9.0.0'
    end
            
    नए वर्शन का पता लगाने के लिए, pod outdated को नियमित रूप से चलाएं. अगर ज़रूरी हो, तो नए वर्शन पर अपग्रेड करें.
  4. Podfile को सेव करें.
  5. कोई टर्मिनल खोलें और उस डायरेक्ट्री पर जाएं जिसमें Podfile है:

    cd <path-to-project>
  6. pod install निर्देश चलाएं. यह, Podfile में बताए गए एपीआई को सभी डिपेंडेंसी के साथ इंस्टॉल करता है.

    pod install
  7. Xcode को बंद करें और फिर Xcode को लॉन्च करने के लिए, अपने प्रोजेक्ट की .xcworkspace फ़ाइल खोलें (दो बार क्लिक करें). इसके बाद, प्रोजेक्ट खोलने के लिए आपको .xcworkspace फ़ाइल का इस्तेमाल करना होगा.

अगर आपको किसी मौजूदा प्रोजेक्ट के लिए एपीआई अपडेट करना है, तो यह तरीका अपनाएं:

  1. कोई टर्मिनल खोलें और Podfile वाली प्रोजेक्ट डायरेक्ट्री पर जाएं.
  2. pod update निर्देश चलाएं. इससे Podfile में बताए गए सभी एपीआई को सबसे नए वर्शन में अपडेट कर दिया जाता है.

मैन्युअल तरीके से इंस्टॉल करना

इस गाइड में मैन्युअल तरीके से उन XCFrameworks को जोड़ने का तरीका बताया गया है जिनमें iOS के लिए नेविगेशन SDK टूल और iOS के लिए Maps SDK टूल शामिल हैं. साथ ही, Xcode में बिल्ड सेटिंग कॉन्फ़िगर करने का तरीका भी बताया गया है. XCFramework एक बाइनरी पैकेज है, जिसे कई प्लैटफ़ॉर्म पर इस्तेमाल किया जा सकता है. इनमें M1 चिपसेट का इस्तेमाल करने वाली मशीनें भी शामिल हैं

iOS के लिए नेविगेशन SDK टूल के लिए XCFrameworks और iOS के लिए Maps SDK टूल को इंस्टॉल करने के लिए, यह तरीका अपनाएं:

  1. SDK टूल की इन बाइनरी और रिसॉर्स फ़ाइलों को डाउनलोड करें:
  2. Xcode लॉन्च करें और कोई मौजूदा प्रोजेक्ट खोलें या नया प्रोजेक्ट बनाएं. अगर आपने iOS का इस्तेमाल पहले कभी नहीं किया है, तो एक नया प्रोजेक्ट बनाएं और iOS ऐप्लिकेशन का टेंप्लेट चुनें.
  3. प्रोजेक्ट से सभी मौजूदा मैप, नेविगेशन, और जगहें रेफ़रंस हटाएं.
  4. Maps और नेविगेशन SDK टूल, दोनों को इंस्टॉल करने के लिए, फ़्रेमवर्क, लाइब्रेरी, और एम्बेड किए गए कॉन्टेंट में XCFramework को अपने प्रोजेक्ट में खींचें और छोड़ें. जब आपसे कहा जाए, तब ज़रूरी होने पर आइटम कॉपी करें चुनें:
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
    • GoogleNavigation.xcframework
  5. डाउनलोड किए गए GoogleMapsResources से GoogleMaps.bundle को अपने Xcode प्रोजेक्ट की टॉप लेवल डायरेक्ट्री में खींचें और छोड़ें. जब कहा जाए, तब पक्का करें कि ज़रूरी होने पर आइटम कॉपी करें चुना गया हो.
  6. डाउनलोड किए गए GoogleNavigationResources से GoogleNavigation.bundle को अपने Xcode प्रोजेक्ट की टॉप लेवल डायरेक्ट्री में खींचें और छोड़ें. जब कहा जाए, तब पक्का करें कि डेस्टिनेशन ग्रुप के फ़ोल्डर में आइटम कॉपी करें चुना गया हो.
  7. प्रोजेक्ट नेविगेटर से अपना प्रोजेक्ट चुनें और ऐप्लिकेशन का टारगेट चुनें.
  8. बिल्ड चरण टैब खोलें और बाइनरी को लाइब्रेरी से लिंक करें सेक्शन में, नीचे दिए गए फ़्रेमवर्क और लाइब्रेरी जोड़ें:
    • 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
  9. अपने ऐप्लिकेशन के टारगेट में, क्षमता टैब चुनें, बैकग्राउंड मोड चालू करें, और नीचे दिए गए मोड चालू करें:
    • ऑडियो, AirPlay, और पिक्चर में पिक्चर
    • जगह की जानकारी के अपडेट
  10. खास टारगेट के बजाय अपना प्रोजेक्ट चुनें और बिल्ड सेटिंग टैब खोलें. अन्य लिंकर फ़्लैग सेक्शन में, डीबग और रिलीज़, दोनों के लिए ‑ObjC जोड़ें. अगर ये सेटिंग नहीं दिख रही हैं, तो बिल्ड सेटिंग बार में फ़िल्टर को बेसिक से सभी में बदलें.
  11. Info.plist खोलें और नीचे दिए गए की-वैल्यू पेयर जोड़ें:
    • कुंजी: NSLocationWhenInUseUsageDescription (निजता - इस्तेमाल के दौरान जगह की जानकारी)
      वैल्यू: "इस ऐप्लिकेशन को मोड़-दर-मोड़ नेविगेशन के लिए आपकी जगह की जानकारी का इस्तेमाल करने की अनुमति चाहिए."
    • कुंजी: NSLocationAlwaysAndWhenInUseUsageDescription (निजता - जगह की जानकारी हमेशा और इस्तेमाल में होने पर इस्तेमाल की जानकारी)
      वैल्यू: "इस ऐप्लिकेशन को मोड़-दर-मोड़ नेविगेशन के लिए आपकी जगह की जानकारी का इस्तेमाल करने की अनुमति चाहिए."

दूसरा चरण: Apple की प्राइवसी मेनिफ़ेस्ट फ़ाइल की जांच करना

Apple को App Store पर मौजूद ऐप्लिकेशन के लिए, ऐप्लिकेशन की निजता जानकारी की ज़रूरत होती है. अपडेट और ज़्यादा जानकारी के लिए, Apple App Store के निजता की ज़्यादा जानकारी वाले पेज पर जाएं.

Apple की प्राइवसी मेनिफ़ेस्ट फ़ाइल, SDK टूल के रिसॉर्स बंडल में शामिल है. निजता मेनिफ़ेस्ट फ़ाइल को शामिल किए जाने की पुष्टि करने और इसके कॉन्टेंट की जांच करने के लिए, अपने ऐप्लिकेशन का एक संग्रह बनाएं. इसके बाद, संग्रह से निजता रिपोर्ट जनरेट करें.

तीसरा चरण: अपने प्रोजेक्ट में एपीआई पासकोड जोड़ना

नीचे दिए गए उदाहरणों में, Xcode में अपने प्रोजेक्ट में एपीआई पासकोड जोड़ने का तरीका बताया गया है:

Swift

अपने AppDelegate.swift में अपनी एपीआई कुंजी इस तरह जोड़ें:

  1. यहां दिए गए इंपोर्ट स्टेटमेंट जोड़ें:
    import GoogleMaps
    import GoogleNavigation
  2. अपने application(_:didFinishLaunchingWithOptions:) तरीके में यह तरीका जोड़ें:
    GMSServices.provideAPIKey("YOUR_API_KEY")

Objective-C

अपने AppDelegate.m में अपनी एपीआई कुंजी इस तरह जोड़ें:

  1. यहां दिए गए इंपोर्ट स्टेटमेंट जोड़ें:
    @import GoogleMaps;
    @import GoogleNavigation;
  2. अपने application:didFinishLaunchingWithOptions: तरीके में यह तरीका जोड़ें:
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];

चरण 4: मैप जोड़ना

यह कोड बताता है कि मौजूदा 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 टूल को लागू करने के तरीके में ट्रांज़ैक्शन आईडी जोड़ने का तरीका जानने के लिए, अपनी सेवा के इस्तेमाल को मोबिलिटी ट्रांज़ैक्शन से जोड़ना लेख पढ़ें.