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

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

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

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

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

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

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

एसडीके का इंस्टॉल साइज़ अलग-अलग होता है. उदाहरण के लिए, iOS के लिए Maps SDK के 9.0 वर्शन का इंस्टॉल साइज़ करीब 18 एमबी है.

Swift Package Manager

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

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

  1. अपना Xcode project या workspace खोलें. इसके बाद, File > Add Package Dependencies पर जाएं.
  2. यूआरएल के तौर पर https://github.com/googlemaps/ios-maps-sdk डालें. इसके बाद, पैकेज को पुल करने के लिए Enter दबाएं और "Add Package" पर क्लिक करें.
  3. कोई खास version इंस्टॉल करने के लिए, Dependency Rule फ़ील्ड को वर्शन के हिसाब से किसी एक विकल्प पर सेट करें. नए प्रोजेक्ट के लिए, हमारा सुझाव है कि सबसे नया वर्शन तय करें और "Exact Version" विकल्प का इस्तेमाल करें. यह चरण पूरा होने के बाद, "Add Package" पर क्लिक करें.
  4. Choose Package Products विंडो में, पुष्टि करें कि आपके तय किए गए main टारगेट में GoogleMaps (9.0.0 से पहले के वर्शन के लिए, GoogleMaps, GoogleMapsBase, और GoogleMapsCore की पुष्टि करें) जोड़ा जाएगा. यह चरण पूरा होने के बाद, "Add Package" पर क्लिक करें.
  5. इंस्टॉल करने की पुष्टि करने के लिए, अपने टारगेट के General पैन पर जाएं. Frameworks, Libraries, and Embedded Content में, आपको इंस्टॉल किए गए पैकेज दिखने चाहिए. पैकेज और उसके वर्शन की पुष्टि करने के लिए, "Project Navigator" के "Package Dependencies" सेक्शन को भी देखा जा सकता है.

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

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

    अपने Xcode प्रोजेक्ट की कॉन्फ़िगरेशन सेटिंग में जाकर, Frameworks, Libraries, and Embedded Content ढूंढें. यहां दिए गए फ़्रेमवर्क को हटाने के लिए, माइनस साइन(-) का इस्तेमाल करें:

    • GoogleMapsBase (सिर्फ़ 9.0.0 से पहले के वर्शन से अपग्रेड करने के लिए)
    • GoogleMapsCore (सिर्फ़ 9.0.0 से पहले के वर्शन से अपग्रेड करने के लिए)
    • GoogleMapsM4B (सिर्फ़ 9.0.0 से पहले के वर्शन से अपग्रेड करने के लिए)
  2. Xcode में, File > Packages > Update To Latest Package Versions पर जाएं.
  3. इंस्टॉल करने की पुष्टि करने के लिए, Package Dependencies सेक्शन पर जाएं. यहां पैकेज और उसके वर्शन की पुष्टि करें.

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

  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 प्रोजेक्ट की कॉन्फ़िगरेशन सेटिंग में जाकर, Frameworks, Libraries, and Embedded Content ढूंढें. यहां दिए गए फ़्रेमवर्क को हटाने के लिए, माइनस साइन (-) का इस्तेमाल करें:
    • GoogleMaps
    • GoogleMapsBase (सिर्फ़ वर्शन 9.2.0 से पहले के इंस्टॉलेशन के लिए)
    • GoogleMapsCore (सिर्फ़ वर्शन 9.2.0 से पहले के इंस्टॉलेशन के लिए)
    • GoogleMapsM4B (सिर्फ़ वर्शन 9.0.0 से पहले के इंस्टॉलेशन के लिए)
  2. अपने Xcode प्रोजेक्ट की टॉप लेवल डायरेक्ट्री से, GoogleMaps बंडल हटाएं.

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

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

  1. एसडीके की ये बाइनरी और संसाधन फ़ाइलें डाउनलोड करें:
  2. XCFramework और संसाधन ऐक्सेस करने के लिए, फ़ाइलें एक्सट्रैक्ट करें.
  3. अगर आपके पास अब तक कोई Xcode प्रोजेक्ट नहीं है, तो अभी एक प्रोजेक्ट बनाएं और उसे अपनी लोकल मशीन पर सेव करें. अगर आपने iOS डेवलपमेंट में अभी-अभी शुरुआत की है, तो:
    1. कोई नया प्रोजेक्ट बनाएं.
    2. iOS > ऐप्लिकेशन टेंप्लेट चुनें.
    3. प्रोजेक्ट के विकल्पों वाली स्क्रीन पर:
      1. प्रोजेक्ट का नाम डालें.
      2. बंडल आइडेंटिफ़ायर फ़ील्ड की वैल्यू रिकॉर्ड करें. इस वैल्यू का इस्तेमाल, नीचे दिए गए एपीआई पासकोड को सीमित करने के लिए किया जा सकता है.
      3. प्रोजेक्ट इंटरफ़ेस को Storyboard पर सेट करें.
      4. भाषा को Swift या Objective-C पर सेट करें.
  4. General टैब खोलें. **Frameworks, Libraries, and Embedded Content** में जाकर, ये XCFramework अपने प्रोजेक्ट में खींचें और छोड़ें. Do Not Embed को चुनना न भूलें:
    • GoogleMaps.xcframework
  5. डाउनलोड किए गए GoogleMapsResources से, GoogleMaps.bundle को कॉपी करके अपने Xcode प्रोजेक्ट की टॉप लेवल डायरेक्ट्री में चिपकाएं. प्रॉम्प्ट मिलने पर, Copy items into destination group's folder को चुनना न भूलें.
  6. प्रोजेक्ट नेविगेटर से अपना प्रोजेक्ट चुनें. इसके बाद, अपने ऐप्लिकेशन का टारगेट चुनें.
  7. अपने ऐप्लिकेशन के टारगेट के लिए, Build Phases टैब खोलें. Link Binary with Libraries में जाकर, ये फ़्रेमवर्क और लाइब्रेरी जोड़ें:
    • 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
    • MetricKit.framework
    • OpenGLES.framework (सिर्फ़ OpenGL का इस्तेमाल करने पर)
    • QuartzCore.framework
    • Security.framework
    • SystemConfiguration.framework
    • UIKit.framework
  8. किसी खास टारगेट के बजाय, अपना प्रोजेक्ट चुनें और Build Settings टैब खोलें. Linking - General -> Other Linker Flags सेक्शन में, "Debug" और "Release" में -ObjC जोड़ें. अगर ये सेटिंग नहीं दिखती हैं, तो Build Settings बार में फ़िल्टर को Basic से बदलकर All करें.

  9. iOS के लिए Places SDK XCFramework इंस्टॉल करने के लिए, iOS के लिए Places 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"];

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

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

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

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

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

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