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

बिलिंग की सुविधा चालू करने और एपीआई पासकोड बनाने के बाद, Xcode सेट अप किया जा सकता है आपके ऐप्लिकेशन को डेवलप करने के लिए इस्तेमाल किया जाता है.

रिलीज़ नोट हर एक के लिए उपलब्ध हैं रिलीज़.

पहला चरण: ज़रूरी सॉफ़्टवेयर इंस्टॉल करना

iOS के लिए नेविगेशन SDK का इस्तेमाल करके प्रोजेक्ट बनाने के लिए, आपको डाउनलोड और इंस्टॉल करना होगा:

  • Xcode 15.0 या इसके बाद के वर्शन

दूसरा चरण: Xcode प्रोजेक्ट बनाना और नेविगेशन 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 पैनल पर जाएं. फ़्रेमवर्क, लाइब्रेरी, और एम्बेड किए गए कॉन्टेंट में, आपको इंस्टॉल किए गए पैकेज दिखेंगे. "पैकेज डिपेंडेंसी" भी देखी जा सकती है "प्रोजेक्ट नेविगेटर" का सेक्शन की पुष्टि करें.

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

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

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

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

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

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

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

CocoaPods

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

अगर आपके पास पहले से 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 में बदलाव करें और अपनी डिपेंडेंसी के साथ उनकी वैल्यू जोड़ें वर्शन. यहां एक उदाहरण दिया गया है, जिसमें iOS के लिए नेविगेशन SDK टूल: # Cocoapods का रेफ़रंस # इंस्टॉल करें
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '15.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GoogleNavigation', '9.1.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. प्रोजेक्ट से सभी मौजूदा Maps, नेविगेशन, और जगहों के रेफ़रंस हटाएं.
  4. इन XCFrameworks को Maps को इंस्टॉल करने के लिए फ़्रेमवर्क, लाइब्रेरी, और एम्बेड किया गया कॉन्टेंट और नेविगेशन SDK (जब आपसे कहा जाए, तब ज़रूरत होने पर आइटम कॉपी करें चुनें):
    • 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"];

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

यह कोड बताता है कि मौजूदा 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 options = GMSMapViewOptions()
    options.camera = camera
    options.frame = .zero
    mapView = GMSMapView(options: options)

    // Show the terms and conditions.
    let termsAndConditionsOptions = GMSNavigationTermsAndConditionsOptions(companyName: "Ride Share Co.")

    GMSNavigationServices.showTermsAndConditionsDialogIfNeeded(with: termsAndConditionsOptions) { 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];
  GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
  options.frame = CGRectZero;
  options.camera = camera;
  options.mapID = mapID;
  _mapView = [[GMSMapView alloc] initWithOptions:options];

  // Show the terms and conditions.
  GMSNavigationTermsAndConditionsOptions *termsAndConditionsOptions = [[GMSNavigationTermsAndConditionsOptions alloc] initWithCompanyName:@"Ride Sharing Co."];
  
  [GMSNavigationServices
    showTermsAndConditionsDialogIfNeededWithOptions:termsAndConditionsOptions
    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

अपना ऐप्लिकेशन चलाएं. आपको एक मैप दिखेगा, जो किर्कलैंड, वॉशिंगटन के बीच में है.

अगर मैप दिखाई नहीं दे रहा है, तो नीचे दिए गए तरीके आज़माएं:

  • पुष्टि करें कि आपने सही एपीआई पासकोड उपलब्ध कराया है.
  • देखें कि Cloud Console में NavSDK की सुविधा चालू हो.
  • अगर Nav SDK टूल इंस्टॉल हो गया है, लेकिन आपके प्रोजेक्ट में Nav SDK API का इस्तेमाल नहीं किया गया है, तो उसे अपनी बाइनरी से हटा दें.

अगर आप मोबिलिटी सेवाओं के ग्राहक हैं

अगर आप मोबिलिटी सेवाओं के ग्राहक हैं, तो बिलिंग के बारे में जानें की जानकारी भी मिलेगी. रिकॉर्डिंग की ज़्यादा जानकारी के लिए लेन-देन, देखें बिलिंग सेट अप करें. नेविगेशन SDK टूल को लागू करने के तरीके में लेन-देन आईडी जोड़ने का तरीका जानने के लिए, देखें सेवा के इस्तेमाल को मोबिलिटी से जुड़े लेन-देन से जोड़ें.

आगे क्या करना है

अब आपके पास एपीआई पासकोड और Xcode प्रोजेक्ट मौजूद है. इसलिए, ऐप्लिकेशन बनाए जा सकते हैं और उन्हें चलाया जा सकता है. iOS के लिए नेविगेशन SDK टूल से आपको ऐसे ट्यूटोरियल मिलते हैं जो आपकी मदद कर सकते हैं 'शुरू करें'. ज़्यादा जानकारी के लिए, यह देखें: