iOS सैंपल ऐप्लिकेशन बनाना

यह सैंपल iOS ऐप्लिकेशन, Google Home API का इस्तेमाल करता है. इस गाइड का इस्तेमाल करके, ऐप्लिकेशन को पहली बार बनाएं और चलाएं.

ज़रूरी शर्तें

पक्का करें कि आपके पास iOS के लिए Home API इस्तेमाल करने से जुड़ी ज़रूरी शर्तें पूरी हों.

सैंपल के तौर पर मिला ऐप्लिकेशन बनाने और उसे इंस्टॉल करने के लिए, आपको ऐसे कंप्यूटर की ज़रूरत होगी जिस पर Xcode का वर्शन 15.3 या इसके बाद का वर्शन इंस्टॉल हो.

Xcode डाउनलोड करना

ऐप्लिकेशन की जांच करने के लिए, आपको इनकी ज़रूरत होगी:

  1. एक Google खाता.
  2. फ़िज़िकल डिवाइस की कॉन्फ़िगरेशन फ़ाइलें जनरेट करने के लिए, Apple Developer Program में रजिस्टर किया गया Apple ID. अगर आपने पहले से ही खाता नहीं बनाया है, तो आपको इसके लिए अतिरिक्त शुल्क देना होगा. साथ ही, इसमें 48 घंटे लग सकते हैं.
  3. iOS 16.4 या उसके बाद के वर्शन पर काम करने वाला iOS डिवाइस (सिम्युलेटर नहीं). साथ ही, यह टेस्ट खाते से सेट अप किया गया हो.
  4. वाई-फ़ाई नेटवर्क.
  5. Google का ऐसा हब जो Home API के साथ काम करता हो.
  6. अगर आपके डिवाइस को Thread की ज़रूरत है और आपके हब में यह सुविधा नहीं है, तो Thread Border Router (TBR).
  7. इस सुविधा के साथ काम करने वाले डिवाइस का कम से कम एक टाइप.

डेवलपमेंट के लिए, आपको ऐसे Mac की ज़रूरत होगी जो ये ज़रूरी शर्तें पूरी करता हो:

  • macOS Sonoma या इसके बाद का वर्शन
  • Xcode 15.3 या उसके बाद का वर्शन

Apple डिवाइसों के लिए डिप्लॉयमेंट कॉन्फ़िगरेशन फ़ाइलें बनाना

सबसे पहले, किसी ऐप्लिकेशन के लिए App Attest की सुविधा चालू होनी चाहिए. इस वजह से, इसे सिम्युलेटर डिवाइसों पर डिप्लॉय नहीं किया जा सकता. इसके लिए, आपको App Attest एनटाइटलमेंट के साथ एक प्रोविज़निंग प्रोफ़ाइल बनानी होगी.

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

ज़्यादा जानकारी के लिए, Apple का डेवलपमेंट प्रोविज़निंग प्रोफ़ाइल बनाएं लेख पढ़ें.

किसी ऐप्लिकेशन को डिप्लॉय करने के लिए, कम से कम यह तरीका अपनाना ज़रूरी है:

  1. MatterExtension से कम्यूनिकेट करने के लिए, अपने ऐप्लिकेशन के लिए ऐप्लिकेशन ग्रुप आइडेंटिफ़ायर बनाएं.
    1. Apple Developer Portal में साइन इन करें.
    2. ऐप्लिकेशन ग्रुप आइडेंटिफ़ायर जोड़ें. उदाहरण के लिए, इसे group.com.company.commissioning के तौर पर फ़ॉर्मैट किया जा सकता है.
  2. डेवलपर खाते में, अपने टेस्ट डिवाइस को रजिस्टर करें.
  3. अपने ऐप्लिकेशन के टारगेट के लिए प्रोफ़ाइल बनाएं.

    1. अपने ऐप्लिकेशन के लिए, ऐप्लिकेशन बंडल आइडेंटिफ़ायर तय करें. आइडेंटिफ़ायर यूनीक होना चाहिए और उसमें पूरी जानकारी होनी चाहिए. उदाहरण के लिए, इसे com.company.HomeApiSample के तौर पर फ़ॉर्मैट किया जा सकता है. इस आइडेंटिफ़ायर का इस्तेमाल, इस सेक्शन के बाकी हिस्से में किया जाएगा.
    2. अपना ऐप्लिकेशन आईडी रजिस्टर करें. प्रॉम्प्ट मिलने पर, App Attest और App Groups की सुविधा जोड़ें.
    3. नए बनाए गए ऐप्लिकेशन आईडी में बदलाव करें और ऐप्लिकेशन ग्रुप की सुविधा को कॉन्फ़िगर करें, ताकि रजिस्टर किए गए ऐप्लिकेशन ग्रुप का आइडेंटिफ़ायर जोड़ा जा सके.

    4. ऐप्लिकेशन डेवलपमेंट के लिए, डेवलपमेंट प्रोविज़निंग प्रोफ़ाइल बनाएं. इसे अपने नए बनाए गए ऐप्लिकेशन आईडी और चुने गए टेस्ट डिवाइसों से जोड़ें. पक्का करें कि आपके पास ऐप्लिकेशन पर हस्ताक्षर करने के लिए, डेवलपर सर्टिफ़िकेट हो.

  4. अपने MatterExtension टारगेट के लिए एक प्रोफ़ाइल बनाएं.

    1. अपने MatterExtension के लिए ऐप्लिकेशन बंडल आइडेंटिफ़ायर तय करें. आइडेंटिफ़ायर को ऐप्लिकेशन आइडेंटिफ़ायर से इनहेरिट किया जाना चाहिए. उदाहरण के लिए, इसे com.company.HomeApiSample.MatterExtension के तौर पर फ़ॉर्मैट किया जा सकता है.
    2. अपना ऐप्लिकेशन आईडी रजिस्टर करें. जब कहा जाए, तब ऐप्लिकेशन ग्रुप की सुविधा जोड़ें.
    3. नए बनाए गए ऐप्लिकेशन आईडी में बदलाव करें और ऐप्लिकेशन ग्रुप की सुविधा को कॉन्फ़िगर करें, ताकि पिछले चरणों में बनाए गए, रजिस्टर किए गए ऐप्लिकेशन ग्रुप आइडेंटिफ़ायर को जोड़ा जा सके.
    4. MatterExtension के लिए, डेवलपमेंट प्रोविज़निंग प्रोफ़ाइल बनाएं.

OAuth क्लाइंट आईडी जनरेट करना और Home APIs चालू करना

Google के पुष्टि करने वाले बैकएंड पर, आपके ऐप्लिकेशन की पहचान करने के लिए OAuth क्लाइंट आईडी की ज़रूरत होती है. iOS और ऐप्लिकेशन के लिए, OAuth क्लाइंट आईडी ऐप्लिकेशन टाइप को iOS के तौर पर कॉन्फ़िगर किया जाना चाहिए. यह ऐप्लिकेशन, Home API को भी कॉल करेगा. इस सुविधा को चालू करने के लिए, Google Cloud प्रोजेक्ट में एपीआई चालू होना चाहिए.

OAuth क्लाइंट आईडी जनरेट करना

  1. Google Cloud Console में, प्रोजेक्ट चुनने वाले डैशबोर्ड पर जाएं और वह प्रोजेक्ट चुनें जिसका इस्तेमाल करके आपको OAuth क्रेडेंशियल बनाने हैं.
  2. एपीआई और सेवाओं वाले पेज पर जाने के लिए, सबसे ऊपर बाईं ओर मौजूद मेन्यू बटन > सभी प्रॉडक्ट देखें > एपीआई और सेवाएं पर क्लिक करें.
  3. नेविगेशन मेन्यू में, क्रेडेंशियल पर क्लिक करें.
  4. अगर आपने इस Google Cloud प्रोजेक्ट के लिए, सहमति वाली स्क्रीन को अब तक कॉन्फ़िगर नहीं किया है, तो आपको सहमति वाली स्क्रीन को कॉन्फ़िगर करें बटन दिखेगा. ऐसे में, यहां दिए गए तरीके का इस्तेमाल करके, सहमति लेने के लिए अपनी स्क्रीन कॉन्फ़िगर करें. अगर आपकी OAuth सहमति स्क्रीन पहले ही कॉन्फ़िगर की जा चुकी है और उसका पब्लिशिंग स्टेटस Testing है, तो पक्का करें कि जिन टेस्ट खातों का इस्तेमाल किया जाएगा उन्हें Test users ग्रुप में जोड़ा गया हो. अगर ऐसा नहीं है, तो अगले चरण पर जाएं.

    1. इस्तेमाल के उदाहरण के आधार पर, Internal या External को चुनें. इसके बाद, Create पर क्लिक करें. आपको OAuth के लिए सहमति देने वाली स्क्रीन पैनल दिखेगा.
    2. स्क्रीन पर दिए गए निर्देशों के मुताबिक, ऐप्लिकेशन की जानकारी वाले पेज पर जानकारी डालें. इसके बाद, सेव करें और जारी रखें पर क्लिक करें. इसके बाद, स्कोप पैनल दिखेगा.
    3. आपको कोई स्कोप जोड़ने की ज़रूरत नहीं है. इसलिए, सेव करें और जारी रखें पर क्लिक करें. टेस्ट यूज़र पैनल दिखता है.
    4. अगर आपने संगठन के अंदर इस्तेमाल होने वाली ऐसी स्क्रीन जहां OAuth के लिए सहमति दी जाती है बनाने का विकल्प चुना है, तो आपको उपयोगकर्ताओं को जोड़ना होगा, ताकि वे आपके ऐप्लिकेशन को टेस्ट कर सकें. उपयोगकर्ताओं को जोड़ें पर क्लिक करें. उपयोगकर्ताओं को जोड़ें पैनल दिखता है. टेस्ट करने वाले उपयोगकर्ताओं के पास, आपके ऐप्लिकेशन में अनुमतियां देने का अधिकार होता है. खाली फ़ील्ड में, एक या उससे ज़्यादा Google खाते के ईमेल पते जोड़ें. इसके बाद, जोड़ें पर क्लिक करें.
    5. सेव करें और जारी रखें पर क्लिक करें. आपको खास जानकारी पैनल दिखेगा.
    6. OAuth के लिए सहमति की स्क्रीन पर दी गई जानकारी देखें. इसके बाद, डैशबोर्ड पर वापस जाएं पर क्लिक करें.
  5. अपना OAuth क्लाइंट आईडी बनाने के लिए, बाईं ओर मौजूद मेन्यू पैनल में, Credentials पर क्लिक करें.

    OAuth स्क्रीन सेट अप करना

    1. क्रेडेंशियल बनाएं बटन पर क्लिक करें. इसके बाद, OAuth क्लाइंट आईडी चुनें.
      1. ऐप्लिकेशन टाइप में जाकर, iOS चुनें.
    2. अपने ऐप्लिकेशन के आइडेंटिफ़ायर और Apple Developer Team ID के साथ Bundle ID डालें. अन्य फ़ील्ड भरना ज़रूरी नहीं है और उन्हें खाली छोड़ा जा सकता है.
    3. बनाएं पर क्लिक करें और बनाए गए क्लाइंट आईडी को नोट करें या PLIST डाउनलोड करें. इसका इस्तेमाल बाद में, अनुमतियों के फ़्लो से जुड़ी सुविधा को चालू करने के लिए किया जाएगा. ज़्यादा जानकारी के लिए, अनुमति देने वाले क्रेडेंशियल बनाना सेक्शन देखें.

Home APIs को चालू करना

Home API का ऐक्सेस चालू करें.

  1. एपीआई और सेवाएं टैब में, चालू किए गए एपीआई और सेवाएं पर क्लिक करें.
  2. पेज पर सबसे ऊपर, एपीआई और सेवाएं चालू करें पर क्लिक करें.
  3. HOME API को खोजें और उसे चुनें.
  4. Home API की ज़्यादा जानकारी वाले पेज पर, चालू करें पर क्लिक करें.

सोर्स कोड डाउनलोड करना

सैंपल के तौर पर मिले ऐप्लिकेशन का सोर्स कोड GitHub पर उपलब्ध है.

उस जगह पर जाएं जहां आपको प्रोजेक्ट सेव करना है. इसके बाद, उसे क्लोन करें:

git clone https://github.com/google-home/google-home-api-sample-app-ios.git

प्रोजेक्ट को Xcode पर लोड करने के लिए, File > Open पर क्लिक करें. इसके बाद, क्लोन की गई रिपॉज़िटरी के रूट में मौजूद GoogleHomeAPISampleIOS.xcodeproj को चुनें.

प्रोजेक्ट में एसडीके जोड़ना

सैंपल के तौर पर मिले ऐप्लिकेशन प्रोजेक्ट को बनाने के लिए, कुछ और जानकारी की ज़रूरत होती है. इसमें एसडीके फ़्रेमवर्क फ़ाइलों को स्थानीय तौर पर जोड़ना, डेवलपर खाते के आइडेंटिफ़ायर की जानकारी भरना, और OAuth क्लाइंट आईडी भरना शामिल है.

ऐप्लिकेशन बनाना

Home APIs iOS SDK को डाउनलोड करने के लिए, आपको पहले Google Home Developers में साइन इन करना होगा.

अभी साइन इन करें!

सैंपल के तौर पर मिले ऐप्लिकेशन के लिए, Xcode प्रोजेक्ट को कॉन्फ़िगर करें:

  1. डाउनलोड किए गए SDK टूल को प्रोजेक्ट की रूट डायरेक्ट्री के हिसाब से ThirdParty/GoogleHomeSDK डायरेक्ट्री में अनपैक करें.
  2. डेवलपर और OAuth क्लाइंट आईडी कॉन्फ़िगर करें:
    1. नेविगेशन पैन में, GoogleHomeAPISampleIOS फ़ोल्डर ढूंढें. इसके बाद, बदलाव करने के लिए Info.plist फ़ाइल खोलें.
  3. Info.plist फ़ाइल में, GIDClientID को अपने OAuth क्लाइंट आईडी (OAuth सहमति सेट अप करें सेक्शन देखें), अपने क्लाउड प्रोजेक्ट से जुड़े Cloud Project Number, और GIDTeamID को OAuth रजिस्ट्रेशन प्रोसेस के दौरान इस्तेमाल किए गए डेवलपर खाते के Apple Developer Team ID से भरें.

  4. App Attest की सुविधा जोड़ना:

    1. प्रोजेक्ट कॉन्फ़िगरेशन में बदलाव करने के लिए, Xcode के नेविगेशन पैन में मौजूद GoogleHomeAPISampleIOS प्रोजेक्ट फ़ाइल चुनें.
    2. सबसे ऊपर मौजूद, Signing and Capabilities टैब पर क्लिक करें. इसके बाद, बाईं ओर मौजूद TARGETS सेक्शन में जाकर, टारगेट GoogleHomeAPISampleIOS को चुनें.
    3. Signing and Capabilities टैब के ठीक नीचे, + Capability पर क्लिक करें और App Attest खोजें.
    4. जोड़ने के लिए, App Attest पर क्लिक करें. अगर खोज के नतीजों में यह सुविधा नहीं दिख रही है, तो हो सकता है कि प्रोजेक्ट में इसे पहले ही जोड़ दिया गया हो.
  5. ऐप्लिकेशन ग्रुप की सुविधा जोड़ें.

    ऐप्लिकेशन ग्रुप जोड़ना

    1. GoogleHomeAPISampleIOS प्रोजेक्ट > GoogleHomeAPISampleIOS टारगेट पर जाएं.
    2. Signing & Capabilities > + Capability पर क्लिक करें.
    3. ऐप्लिकेशन ग्रुप की सुविधा चुनें.
    4. ऐप्लिकेशन ग्रुप में जाकर, + आइकॉन पर क्लिक करें. इसके बाद, अपने ऐप्लिकेशन के लिए ऐप्लिकेशन ग्रुप आइडेंटिफ़ायर जोड़ें. यह वही आइडेंटिफ़ायर होना चाहिए जिसे आपने Apple Developer Portal में जोड़ा था.
    5. MatterAddDeviceExtension टारगेट के लिए यह तरीका दोहराएं, ताकि इसे ऐप्लिकेशन ग्रुप में जोड़ा जा सके.
  6. बंडल आइडेंटिफ़ायर को अपडेट करना

    1. अपने डेवलपर सर्टिफ़िकेट और प्रोविज़निंग प्रोफ़ाइलों का इस्तेमाल करके, हार्डवेयर पर सैंपल के तौर पर मिले ऐप्लिकेशन को चलाने और डिप्लॉय करने के लिए, आपको एक यूनीक बंडल आइडेंटिफ़ायर देना होगा. यह वही आइडेंटिफ़ायर होना चाहिए जो आपके OAuth क्लाइंट क्रेडेंशियल से जुड़ा है (ऊपर देखें).
    2. प्रोजेक्ट कॉन्फ़िगरेशन में बदलाव करने के लिए, Xcode के नेविगेशन पैन में मौजूद GoogleHomeAPISampleIOS प्रोजेक्ट फ़ाइल चुनें.
    3. सबसे ऊपर मौजूद, हस्ताक्षर और सुविधाएं टैब पर क्लिक करें. इसके बाद, TARGETS सेक्शन में बाईं ओर मौजूद टारगेट GoogleHomeAPISampleIOS को चुनें.
    4. साइनिंग सेक्शन में, बंडल आइडेंटिफ़ायर फ़ील्ड चुनें. इसके बाद, ऐप्लिकेशन के लिए यूनीक आइडेंटिफ़ायर डालें.
    5. ज़रूरी एनटाइटलमेंट के साथ, उस बंडल से जुड़ी प्रोविज़निंग प्रोफ़ाइल को चुनें या इंस्टॉल करें.
    6. एक्सटेंशन के लिए बंडल आइडेंटिफ़ायर डालने और उसकी रजिस्टर की गई प्रोविज़निंग प्रोफ़ाइल इंपोर्ट करने के लिए, MatterAddDeviceExtension टारगेट के लिए यह तरीका दोहराएं.
  7. कोड में, रजिस्टर किए गए ऐप्लिकेशन ग्रुप के आइडेंटिफ़ायर को अपडेट करें.

    1. ऐप्लिकेशन को SDK टूल के इंस्टेंस को कॉन्फ़िगर करना होगा, ताकि डिवाइस को चालू करने जैसी सुविधाओं के लिए, ऐप्लिकेशन ग्रुप आइडेंटिफ़ायर का इस्तेमाल किया जा सके. Apple Developer Portal में रजिस्टर किए गए ऐप्लिकेशन ग्रुप आईडी का इस्तेमाल करने के लिए, ऐप्लिकेशन को अपडेट करें. इसके लिए, स्ट्रिंग HOME_API_TODO_ADD_APP_GROUP खोजें और हर इंस्टेंस को इससे बदलें.

    ये कॉन्फ़िगरेशन, इन फ़ाइलों में किए जाते हैं:

    • GoogleHomeAPISampleIOS.swift जब SDK शुरू किया जाता है.
    • RequestHandler.swift
    • CommissioningManager.swift
  8. GoogleHomeAPISampleIOS.swift में OAuth का दायरा कॉन्फ़िगर करें. डिफ़ॉल्ट रूप से, सैंपल के तौर पर मिले ऐप्लिकेशन का सोर्स कोड, https://www.googleapis.com/auth/home.platform.v2 स्कोप का इस्तेमाल करता है. सैंपल के तौर पर मिले ऐप्लिकेशन में कई सुविधाएं, home.platform.v2 स्कोप के हिसाब से उपलब्ध होती हैं. इन्हें ऐक्सेस करने के लिए, पार्टनर की मंज़ूरी ज़रूरी होती है. सैंपल के तौर पर मिले ऐप्लिकेशन को स्टैंडर्ड https://www.googleapis.com/auth/home.platform.selected.devices स्कोप के साथ चलाने के लिए, GoogleHomeAPISampleIOS.swift खोलें और Home.configure में homePlatformOAuthScope को बदलकर HomePlatformOAuthScope.v1 करें:

    Home.configure {
      $0.sharedAppGroup = "HOME_API_TODO_ADD_APP_GROUP"
      $0.homePlatformOAuthScope = HomePlatformOAuthScope.v1
      ...
    }