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

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

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

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

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

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

दूसरा चरण: Xcode प्रोजेक्ट बनाना और iOS के लिए Maps SDK टूल इंस्टॉल करना

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

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

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

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

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

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

CocoaPods

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

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

sudo gem install cocoapods

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

  1. अगर आपके पास अब तक कोई Xcode प्रोजेक्ट नहीं है, तो अभी एक प्रोजेक्ट बनाएं और उसे अपनी कंप्यूटर में सेव करें. अगर आपने iOS डेवलपमेंट का इस्तेमाल पहले नहीं किया है, तो:
    1. नया प्रोजेक्ट बनाएं.
    2. iOS > ऐप्लिकेशन टेंप्लेट चुनें.
    3. प्रोजेक्ट के विकल्प वाली स्क्रीन पर:
      1. प्रोजेक्ट का नाम डालें.
      2. बंडल आइडेंटिफ़ायर फ़ील्ड की वैल्यू रिकॉर्ड करें. नीचे दी गई एपीआई पासकोड पर पाबंदी लगाने के लिए, उस वैल्यू का इस्तेमाल किया जा सकता है.
      3. प्रोजेक्ट के इंटरफ़ेस को Storyboard पर सेट करें.
      4. Language को Swift या Objective-C पर सेट करें.
  2. अपनी प्रोजेक्ट डायरेक्ट्री में Podfile नाम की फ़ाइल बनाएं. यह फ़ाइल आपके प्रोजेक्ट की डिपेंडेंसी के बारे में बताती है.
  3. Podfile में बदलाव करें और अपनी डिपेंडेंसी के साथ उनके versions जोड़ें. यहां एक उदाहरण दिया गया है, जिसमें iOS के लिए Maps SDK टूल के लिए ज़रूरी डिपेंडेंसी की जानकारी दी गई है:
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '15.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GoogleMaps', '8.4.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 के लिए Maps SDK वाले XCFrameworks को मैन्युअल तरीके से अपने प्रोजेक्ट में जोड़ने और Xcode में बिल्ड सेटिंग कॉन्फ़िगर करने का तरीका बताया गया है. XCFramework एक बाइनरी पैकेज होता है, जिसे कई प्लैटफ़ॉर्म पर इस्तेमाल किया जा सकता है. इनमें Apple सिलिकॉन का इस्तेमाल करने वाली मशीनें भी शामिल हैं.
  1. इन SDK टूल की बाइनरी और रिसॉर्स फ़ाइलें डाउनलोड करें:
  2. XCFrameworks और संसाधनों को ऐक्सेस करने के लिए, फ़ाइलें एक्सट्रैक्ट करें.
  3. अगर आपके पास अब तक कोई Xcode प्रोजेक्ट नहीं है, तो अभी एक प्रोजेक्ट बनाएं और उसे अपनी कंप्यूटर में सेव करें. अगर आपने iOS डेवलपमेंट का इस्तेमाल पहले नहीं किया है, तो:
    1. नया प्रोजेक्ट बनाएं.
    2. iOS > ऐप्लिकेशन टेंप्लेट चुनें.
    3. प्रोजेक्ट के विकल्प वाली स्क्रीन पर:
      1. प्रोजेक्ट का नाम डालें.
      2. बंडल आइडेंटिफ़ायर फ़ील्ड की वैल्यू रिकॉर्ड करें. नीचे दी गई एपीआई पासकोड पर पाबंदी लगाने के लिए, उस वैल्यू का इस्तेमाल किया जा सकता है.
      3. प्रोजेक्ट के इंटरफ़ेस को Storyboard पर सेट करें.
      4. Language को Swift या Objective-C पर सेट करें.
  4. General टैब खोलें. इन XCFrameworks को फ़्रेमवर्क, लाइब्रेरी, और एम्बेड किए गए कॉन्टेंट में जाकर, अपने प्रोजेक्ट में खींचें और छोड़ें. पक्का करें कि आपने हर XCFramework के लिए Do Not Embed को चुना हो:
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
  5. अपने Xcode प्रोजेक्ट की टॉप लेवल डायरेक्ट्री में डाउनलोड किए गए GoogleMapsResources से GoogleMaps.bundle को कॉपी करें. निर्देश मिलने पर, आइटम को डेस्टिनेशन ग्रुप के फ़ोल्डर में कॉपी करें चुनना न भूलें.
  6. Project Navigator से अपना प्रोजेक्ट चुनें और अपने ऐप्लिकेशन का टारगेट चुनें.
  7. अपने ऐप्लिकेशन के टारगेट के लिए, चरण बनाएं टैब खोलें. बाइनरी को लाइब्रेरी से लिंक करें में, ये फ़्रेमवर्क और लाइब्रेरी जोड़ें:
    • Accelerate.framework
    • Contacts.framework
    • CoreData.framework
    • CoreGraphics.framework
    • CoreImage.framework
    • CoreLocation.framework
    • CoreTelephony.framework
    • CoreText.framework
    • GLKit.framework
    • ImageIO.framework
    • libc++.tbd
    • libz.tbd
    • Metal.framework
    • OpenGLES.framework (अगर OpenGL का इस्तेमाल किया जा रहा है)
    • QuartzCore.framework
    • SystemConfiguration.framework
    • UIKit.framework
  8. किसी खास टारगेट के बजाय, अपना प्रोजेक्ट चुनें और बिल्ड सेटिंग टैब खोलें. लिंक करना - सामान्य -> अन्य लिंकर फ़्लैग सेक्शन में, "डीबग" और "रिलीज़ करें" में -ObjC जोड़ें. अगर ये सेटिंग नहीं दिख रही हैं, तो बिल्ड सेटिंग बार में फ़िल्टर को सामान्य से सभी में बदलें.

  9. iOS XCFramework के लिए स्थल SDK टूल इंस्टॉल करने के लिए, iOS के लिए Places SDK टूल का इस्तेमाल शुरू करना देखें.

तीसरा चरण: Apple Privacy मेनिफ़ेस्ट फ़ाइल की जांच करना

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

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

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

एपीआई पासकोड पाएं में, अपने ऐप्लिकेशन के लिए एपीआई पासकोड जनरेट किया गया. अब उस पासकोड को अपने Xcode प्रोजेक्ट में जोड़ें.

यहां दिए गए उदाहरणों में, YOUR_API_KEY को अपने एपीआई पासकोड से बदलें.

देखें.

Swift

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

  1. यह इंपोर्ट स्टेटमेंट जोड़ें:
    import GoogleMaps
  2. अपनी एपीआई कुंजी का इस्तेमाल करके, अपने application(_:didFinishLaunchingWithOptions:) तरीके में ये चीज़ें जोड़ें:
    GMSServices.provideAPIKey("YOUR_API_KEY")
  3. अगर आपने Places API का इस्तेमाल भी किया है, तो यहां बताए गए तरीके से अपनी कुंजी फिर से जोड़ें:
    GMSPlacesClient.provideAPIKey("YOUR_API_KEY")

Objective-C

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

  1. यह इंपोर्ट स्टेटमेंट जोड़ें:
    @import GoogleMaps;
  2. अपनी एपीआई कुंजी का इस्तेमाल करके, अपने application:didFinishLaunchingWithOptions: तरीके में ये चीज़ें जोड़ें:
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];
  3. अगर आपने Places API का इस्तेमाल भी किया है, तो यहां बताए गए तरीके से अपनी कुंजी फिर से जोड़ें:
    [GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];

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

Swift

/*
 *   Copyright 2020 Google Inc. All rights reserved.
 *
 *
 *   Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
 *   file except in compliance with the License. You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software distributed under
 *   the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
 *   ANY KIND, either express or implied. See the License for the specific language governing
 *   permissions and limitations under the License.
 */

import UIKit
import GoogleMaps

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        // Create a GMSCameraPosition that tells the map to display the
        // coordinate -33.86,151.20 at zoom level 6.

        let options = GMSMapViewOptions()
        options.camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0)
        options.frame = self.view.bounds

        let mapView = GMSMapView(options: options)
        self.view.addSubview(mapView)

        // Creates a marker in the center of the map.
        let marker = GMSMarker()
        marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20)
        marker.title = "Sydney"
        marker.snippet = "Australia"
        marker.map = mapView
  }
}

Objective-C

/*
*   Copyright 2020 Google Inc. All rights reserved.
*
*
*   Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
*   file except in compliance with the License. You may obtain a copy of the License at
*
*   http://www.apache.org/licenses/LICENSE-2.0
*
*   Unless required by applicable law or agreed to in writing, software distributed under
*   the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
*   ANY KIND, either express or implied. See the License for the specific language governing
*   permissions and limitations under the License.
*/

#import "ViewController.h"
#import <GoogleMaps/GoogleMaps.h>

@interface ViewController()

@end

@implementation ViewController

-   (void)viewDidLoad {
  [super viewDidLoad];
  // Do any additional setup after loading the view.
  // Create a GMSCameraPosition that tells the map to display the
  // coordinate -33.86,151.20 at zoom level 6.
  GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
  options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                        longitude:151.2086
                                                             zoom:6];
  options.frame = self.view.bounds;
  GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];

  [self.view addSubview:mapView];

  // Creates a marker in the center of the map.
  GMSMarker *marker = [[GMSMarker alloc] init];
  marker.position = CLLocationCoordinate2DMake(-33.86, 151.20);
  marker.title = @"Sydney";
  marker.snippet = @"Australia";
  marker.map = mapView;
}

@end

पांचवां चरण (ज़रूरी नहीं): एपीआई में इस्तेमाल की गई यूआरएल स्कीम के बारे में बताना

iOS 9 और Xcode 7 से, ऐप्लिकेशन की Info.plist फ़ाइल में स्कीम के बारे में बताकर, ऐप्लिकेशन उन यूआरएल स्कीम का एलान कर सकते हैं जिन्हें वे खोलना चाहते हैं. जब उपयोगकर्ता मैप पर Google के लोगो पर क्लिक करता है, तो iOS के लिए Maps SDK टूल Google Maps का मोबाइल ऐप्लिकेशन खोलता है. इससे आपका ऐप्लिकेशन, काम के यूआरएल स्कीम का एलान कर सकता है.

iOS के लिए Maps SDK टूल में इस्तेमाल की गई यूआरएल स्कीम के बारे में बताने के लिए, अपने Info.plist में ये लाइनें जोड़ें:

LSApplicationQueriesSchemes googlechromes comgooglemaps

नीचे दिया गया स्क्रीनशॉट, Xcode यूज़र इंटरफ़ेस में कॉन्फ़िगरेशन दिखाता है:

Xcode में LSApplicationQuestionScheme कॉन्फ़िगरेशन

ऊपर दिए गए एलान के बिना, जब उपयोगकर्ता मैप पर Google के लोगो पर टैप करता है, तो उसे ये गड़बड़ियां दिख सकती हैं:

  • -canOpenURL: यूआरएल के लिए विफल: "comgooglemaps://" - गड़बड़ी: "इस ऐप्लिकेशन को स्कीम comgooglemaps के लिए क्वेरी करने की अनुमति नहीं है"
  • -canOpenURL: इस यूआरएल के लिए विफल: "googlechromes://" - गड़बड़ी: "इस ऐप्लिकेशन को स्कीम googlechromes के लिए क्वेरी करने की अनुमति नहीं है"

इन गड़बड़ियों को खत्म करने के लिए, अपने Info.plist में एलान जोड़ें.

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

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