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

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

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

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

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

Swift पैकेज मैनेजर

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

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

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

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

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

मैन्युअल तरीके से इंस्टॉल किए गए 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. प्रोजेक्ट के इंटरफ़ेस को Storyboard पर सेट करें.
      4. Language को Swift या Objective-C पर सेट करें.
  2. अपनी प्रोजेक्ट डायरेक्ट्री में Podfile नाम की फ़ाइल बनाएं. यह फ़ाइल आपके प्रोजेक्ट की डिपेंडेंसी के बारे में बताती है.
  3. 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', '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 में बताए गए सभी एपीआई सबसे नए वर्शन में अपडेट हो जाते हैं.

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

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

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

  1. इन SDK टूल की बाइनरी और रिसॉर्स फ़ाइलें डाउनलोड करें:
  2. Xcode लॉन्च करें और या तो कोई मौजूदा प्रोजेक्ट खोलें या एक नया प्रोजेक्ट बनाएं. अगर आपने iOS का इस्तेमाल पहले कभी नहीं किया है, तो नया प्रोजेक्ट बनाएं और iOS ऐप्लिकेशन टेंप्लेट चुनें.
  3. प्रोजेक्ट से सभी मौजूदा Maps, नेविगेशन, और जगहों के रेफ़रंस हटाएं.
  4. Maps और नेविगेशन SDK टूल को इंस्टॉल करने के लिए, इन XCFrameworks को फ़्रेमवर्क, लाइब्रेरी, और एम्बेड किए गए कॉन्टेंट में अपने प्रोजेक्ट में खींचें और छोड़ें. निर्देश मिलने पर, ज़रूरत होने पर आइटम कॉपी करें चुनें:
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
    • GoogleNavigation.xcframework
  5. डाउनलोड किए गए GoogleMapsResources से GoogleMaps.bundle को अपने Xcode प्रोजेक्ट की टॉप लेवल डायरेक्ट्री में खींचें और छोड़ें. जब कहा जाए, तब पक्का करें कि ज़रूरत होने पर आइटम कॉपी करें चुना गया हो.
  6. डाउनलोड किए गए GoogleNavigationResources से GoogleNavigation.bundle को अपने Xcode प्रोजेक्ट की टॉप लेवल डायरेक्ट्री में खींचें और छोड़ें. जब कहा जाए, तब पक्का करें कि आइटम को डेस्टिनेशन ग्रुप के फ़ोल्डर में कॉपी करें चुना गया हो.
  7. Project Navigator से अपना प्रोजेक्ट चुनें और अपने ऐप्लिकेशन का टारगेट चुनें.
  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 Privacy मेनिफ़ेस्ट फ़ाइल की जांच करना

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

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