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

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

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

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

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

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

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

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

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

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

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

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

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

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

ऐप्लिकेशन को डिप्लॉय करने के लिए, यहां दिए गए चरण पूरे करने होंगे:

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

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

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

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

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

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

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

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

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

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

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

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

Home के एपीआई चालू करना

Home के एपीआई का ऐक्सेस चालू करें.

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

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

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

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

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

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

SDK टूल सेट अप करना

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

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

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

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

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

  1. प्रोजेक्ट कॉन्फ़िगरेशन में बदलाव करने के लिए, Xcode के नेविगेशन पैनल में GoogleHomeAPISampleIOS फ़ाइल चुनें.

    SDK टूल का सैंपल ऐप्लिकेशन सेट अप करना

  2. सबसे ऊपर मौजूद, सामान्य टैब पर क्लिक करें. इसके बाद, बाईं ओर मौजूद टारगेट GoogleHomeAPISampleIOS चुनें.

  3. नीचे की ओर स्क्रोल करके, फ़्रेमवर्क, लाइब्रेरी, और एम्बेड किया गया कॉन्टेंट सेक्शन पर जाएं. आपको सूची में दो Home API फ़्रेमवर्क दिखेंगे.

  4. एम्बेड करें कॉलम में, GoogleHomeSDK.xcframework के लिए एम्बेड करें और साइन करें चुनें. दूसरे फ़्रेमवर्क, GoogleHomeTypes.xcframework को एम्बेड न करें के तौर पर छोड़ा जाना चाहिए.

  5. सूची में सबसे नीचे, + आइकॉन पर क्लिक करें.

  6. जब कहा जाए, तब SafariServices.framework खोजें और जोड़ें पर क्लिक करें. पक्का करें कि इस एंट्री के लिए, शामिल करें कॉलम को शामिल न करें पर सेट किया गया हो.

    एम्बेड करना और हस्ताक्षर करना

  7. इसके टारगेट में बदलाव करने के लिए, टारगेट में जाकर MatterAddDeviceExtension पर क्लिक करें.

  8. नीचे की ओर स्क्रोल करके, फ़्रेमवर्क और लाइब्रेरी सेक्शन पर जाएं. आपको सूची में GoogleHomeSDK.xcframework दिखेगा.

  9. एम्बेड करें कॉलम में, एम्बेड न करें चुनें.

  10. डेवलपर और OAuth क्लाइंट आईडी कॉन्फ़िगर करें:

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

  12. बिल्ड सिस्टम को कॉन्फ़िगर करें:

    लिंकर फ़्लैग जोड़ना

    1. प्रोजेक्ट कॉन्फ़िगरेशन में बदलाव करने के लिए, Xcode के नेविगेशन पैनल में GoogleHomeAPISampleIOS प्रोजेक्ट फ़ाइल चुनें.
    2. सबसे ऊपर मौजूद बिल्ड सेटिंग टैब पर क्लिक करें. इसके बाद, TARGETS सेक्शन में बाईं ओर मौजूद टारगेट GoogleHomeAPISampleIOS चुनें.
    3. अन्य लिंकर फ़्लैग खोजें और दो एंट्री जोड़ें:
      • -lc++
      • -ObjC
  13. ऐप्लिकेशन की पुष्टि करने की सुविधा जोड़ें:

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

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

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

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

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

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

    • GoogleHomeAPISampleIOS.swift जब SDK को शुरू किया जाता है.
    • RequestHandler.swift
    • CommissioningManager.swift