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

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

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

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

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

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

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

Swift Package Manager

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

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

  1. Xcode project या workspace खोलें. इसके बाद, फ़ाइल > पैकेज की डिपेंडेंसी जोड़ें पर जाएं.
  2. यूआरएल के तौर पर https://github.com/googlemaps/ios-maps-sdk डालें. इसके बाद, पैकेज को इंपोर्ट करने के लिए Enter दबाएं और "पैकेज जोड़ें" पर क्लिक करें.
  3. किसी खास version को इंस्टॉल करने के लिए, डिपेंडेंसी नियम फ़ील्ड को वर्शन पर आधारित विकल्पों में से किसी एक पर सेट करें. नए प्रोजेक्ट के लिए, हमारा सुझाव है कि आप "सटीक वर्शन" विकल्प का इस्तेमाल करके, सबसे नया वर्शन डालें. इसके बाद, "पैकेज जोड़ें" पर क्लिक करें.

किसी मौजूदा प्रोजेक्ट के लिए 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. अगर CocoaPods के अलावा किसी और काम के लिए Podfile, Podfile.resolved, और Xcode workspace का इस्तेमाल नहीं किया जा रहा है, तो उन्हें हटा दें.

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

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

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

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

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. प्रोजेक्ट के इंटरफ़ेस को स्टोरीबोर्ड पर सेट करें.
      4. भाषा को Swift या Objective-C पर सेट करें.
  2. अपनी प्रोजेक्ट डायरेक्ट्री में Podfile नाम की फ़ाइल बनाएं. इस फ़ाइल में, आपके प्रोजेक्ट की डिपेंडेंसी के बारे में बताया गया है.
  3. Podfile में बदलाव करें और अपनी डिपेंडेंसी के साथ-साथ उनके वर्शन जोड़ें. यहां एक उदाहरण दिया गया है, जिसमें iOS के लिए Maps SDK टूल के लिए ज़रूरी डिपेंडेंसी शामिल है:
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '15.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GoogleMaps', '9.2.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 में बताए गए सभी एपीआई, नए वर्शन पर अपडेट हो जाएंगे.

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

एपीआई पासकोड पाएं में, आपने अपने ऐप्लिकेशन के लिए एपीआई पासकोड जनरेट किया था. अब उस पासकोड को अपने 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"];

चौथा चरण (ज़रूरी नहीं): Apple की निजता मेनिफ़ेस्ट फ़ाइल की जांच करना

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

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

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

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

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

 <key>LSApplicationQueriesSchemes</key>
 <array>
        <string>googlechromes</string>
        <string>comgooglemaps</string>
    </array>

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

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

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

  • -canOpenURL: failed for URL: "comgooglemaps://" - error: "This app is not allowed to query for scheme comgooglemaps"
  • -canOpenURL: failed for URL: "googlechromes://" - error: "This app is not allowed to query for scheme googlechromes"

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

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

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