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

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

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

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

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

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

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

Swift Package Manager

Maps SDK for iOS को Swift Package Manager की मदद से इंस्टॉल किया जा सकता है. SDK टूल जोड़ने के लिए, पक्का करें कि आपने 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. अगर Podfile, Podfile.resolved, और Xcode workspace का इस्तेमाल CocoaPods के अलावा किसी और काम के लिए नहीं किया जा रहा है, तो उन्हें हटा दें.

मैन्युअल तरीके से इंस्टॉल किए गए Maps SDK for iOS को हटाने के लिए, यह तरीका अपनाएं:
  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
    • Security.framework
    • SystemConfiguration.framework
    • UIKit.framework
  8. किसी खास टारगेट के बजाय, अपना प्रोजेक्ट चुनें और बिल्ड सेटिंग टैब खोलें. लिंकिंग - सामान्य -> अन्य लिंकर फ़्लैग सेक्शन में, "डीबग" और "रिलीज़" में -ObjC जोड़ें. अगर ये सेटिंग नहीं दिख रही हैं, तो बिल्ड सेटिंग बार में मौजूद फ़िल्टर को बुनियादी से सभी पर सेट करें.

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

CocoaPods

Maps SDK for iOS, 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 के लिए नेविगेशन SDK टूल में कई ट्यूटोरियल और सैंपल ऐप्लिकेशन उपलब्ध हैं. इनकी मदद से, नेविगेशन SDK टूल का इस्तेमाल शुरू किया जा सकता है. ज़्यादा जानकारी के लिए, यह देखें: