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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

होम एपीआई चालू करना

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. प्रोजेक्ट के कॉन्फ़िगरेशन में बदलाव करने के लिए, Xcode के नेविगेशन पैनल में मौजूद GoogleHomeAPISampleIOS फ़ाइल चुनें.

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

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

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

  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 सहमति सेट अप करें सेक्शन देखें), अपने क्लाउड प्रोजेक्ट से जुड़े Cloud Project Number, और GIDTeamID को Apple Developer Team ID से भरें. यह आईडी, OAuth रजिस्ट्रेशन प्रोसेस के दौरान इस्तेमाल किए गए डेवलपर खाते का होना चाहिए.

  12. ऐप्लिकेशन की पुष्टि करने की सुविधा जोड़ें:

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

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

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

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

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

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

    • SDK के शुरू होने पर GoogleHomeAPISampleIOS.swift.
    • RequestHandler.swift
    • CommissioningManager.swift