यह सैंपल iOS ऐप्लिकेशन, Google Home API का इस्तेमाल करता है. पहली बार ऐप बनाने और चलाने के लिए इस गाइड का उपयोग करें.
ज़रूरी शर्तें
पक्का करें कि आपके पास iOS के लिए Home API इस्तेमाल करने से जुड़ी ज़रूरी शर्तें पूरी हों.
सैंपल ऐप्लिकेशन बनाने और उसे इंस्टॉल करने के लिए, आपको ऐसे कंप्यूटर की ज़रूरत होगी जिस पर Xcode का वर्शन 15.3 या इसके बाद का वर्शन इंस्टॉल हो.
ऐप्लिकेशन की जांच करने के लिए, आपको इनकी ज़रूरत होगी:
- एक Google खाता.
- भौतिक डिवाइस कॉन्फ़िगरेशन फ़ाइलें जेनरेट करने के लिए Apple डेवलपर प्रोग्राम में नामांकित Apple ID. यदि पहले से नामांकन नहीं कराया गया है, तो नामांकन पर अतिरिक्त लागत आएगी और इसे पूरा होने में 48 घंटे तक का समय लग सकता है.
- iOS 16.4 या उसके बाद के वर्शन पर काम करने वाला iOS डिवाइस (सिम्युलेटर नहीं), जिसे टेस्ट खाते से सेट अप किया गया हो.
- वाई-फ़ाई नेटवर्क.
- Google का ऐसा हब जो Home API के साथ काम करता हो.
- अगर आपके डिवाइस के लिए Thread की ज़रूरत है और आपके हब में यह सुविधा नहीं है, तो Thread बॉर्डर राऊटर.
- कम से कम एक डिवाइस टाइप, जो इस सुविधा के साथ काम करता हो.
डेवलपमेंट के लिए, आपको ऐसे Mac की ज़रूरत होगी जो ये ज़रूरी शर्तें पूरी करता हो:
- macOS Sonoma या इसके बाद का वर्शन
- Xcode 15.3 या उसके बाद के वर्शन
Apple के डिप्लॉयमेंट कॉन्फ़िगरेशन की फ़ाइलें बनाना
सबसे पहले, किसी ऐप्लिकेशन के लिए App Attest सुविधा चालू होनी चाहिए. इस वजह से, इसे सिम्युलेटर डिवाइसों पर डिप्लॉय नहीं किया जा सकता. इसके लिए, आपको App Attest एनटाइटलमेंट के साथ एक प्रोविज़निंग प्रोफ़ाइल बनानी होगी.
दूसरा, इसके लिए ज़रूरी है कि ऐप्लिकेशन ग्रुप चालू हों, ताकि ऐप्लिकेशन और MatterExtension के बीच कम्यूनिकेशन हो सके. इसके लिए आपको ऐप समूह पहचानकर्ता पंजीकृत करना होगा.
ज़्यादा जानकारी के लिए, Apple के Create a development provisioning profile लेख में प्रोविज़निंग प्रोफ़ाइल के बारे में पढ़ें.
किसी ऐप्लिकेशन को डिप्लॉय करने के लिए, कम से कम इन चरणों को पूरा करना ज़रूरी है:
- अपने ऐप्लिकेशन के लिए ऐप्लिकेशन ग्रुप आइडेंटिफ़ायर बनाएं, ताकि
MatterExtensionसे कम्यूनिकेट किया जा सके.- Apple Developer Portal में साइन इन करें.
- ऐप्लिकेशन ग्रुप आइडेंटिफ़ायर जोड़ें. उदाहरण के लिए, इसे
group.com.company.commissioningके तौर पर फ़ॉर्मैट किया जा सकता है.
- डेवलपर खाते में अपने टेस्ट डिवाइस को रजिस्टर करें.
अपने ऐप्लिकेशन के टारगेट के लिए प्रोफ़ाइल बनाएं.
- अपने ऐप्लिकेशन के लिए ऐप्लिकेशन बंडल आइडेंटिफ़ायर तय करें.
आइडेंटिफ़ायर यूनीक और जानकारी देने वाला होना चाहिए. उदाहरण के लिए, इसे
com.company.HomeApiSampleके तौर पर फ़ॉर्मैट किया जा सकता है. इस आइडेंटिफ़ायर का इस्तेमाल, इस सेक्शन के बाकी हिस्से में किया जाएगा. - अपने ऐप्लिकेशन आईडी को रजिस्टर करें. जब कहा जाए, तब App Attest और ऐप्लिकेशन ग्रुप की सुविधा जोड़ें.
नया ऐप्लिकेशन आईडी बदलें और रजिस्टर किए गए ऐप्लिकेशन ग्रुप आइडेंटिफ़ायर को जोड़ने के लिए, ऐप्लिकेशन ग्रुप की सुविधा कॉन्फ़िगर करें.
ऐप्लिकेशन डेवलपमेंट के लिए, डेवलपमेंट प्रोविज़निंग प्रोफ़ाइल बनाएं. इसे अपने नए बनाए गए ऐप्लिकेशन आईडी और चुने गए टेस्ट डिवाइसों से जोड़ें. पक्का करें कि आपके पास ऐप्लिकेशन पर हस्ताक्षर करने के लिए डेवलपर सर्टिफ़िकेट हो.
- अगर आपने अब तक कोई सर्टिफ़िकेट नहीं बनाया है, तो निर्देशों के लिए डेवलपर आईडी सर्टिफ़िकेट बनाना लेख पढ़ें.
- अपने ऐप्लिकेशन के लिए ऐप्लिकेशन बंडल आइडेंटिफ़ायर तय करें.
आइडेंटिफ़ायर यूनीक और जानकारी देने वाला होना चाहिए. उदाहरण के लिए, इसे
अपने
MatterExtensionटारगेट के लिए एक प्रोफ़ाइल बनाएं.- अपने
MatterExtensionके लिए ऐप्लिकेशन बंडल आइडेंटिफ़ायर तय करें. आइडेंटिफ़ायर, ऐप्लिकेशन आइडेंटिफ़ायर से इनहेरिट किया जाना चाहिए. उदाहरण के लिए, इसेcom.company.HomeApiSample.MatterExtensionके तौर पर फ़ॉर्मैट किया जा सकता है. - अपने ऐप्लिकेशन आईडी को रजिस्टर करें. जब कहा जाए, तब ऐप्लिकेशन ग्रुप की सुविधा जोड़ें.
- नए बनाए गए ऐप्लिकेशन आईडी में बदलाव करें. साथ ही, पिछले चरणों में बनाए गए रजिस्टर किए गए ऐप्लिकेशन ग्रुप आइडेंटिफ़ायर को जोड़ने के लिए, ऐप्लिकेशन ग्रुप की सुविधा कॉन्फ़िगर करें.
MatterExtensionके लिए, डेवलपमेंट प्रोविज़निंग प्रोफ़ाइल बनाएं.
- अपने
OAuth क्लाइंट आईडी जनरेट करना और Home API चालू करना
आपके ऐप्लिकेशन को OAuth क्लाइंट आईडी की ज़रूरत होती है, ताकि वह Google के पुष्टि करने वाले बैकएंड पर अपनी पहचान कर सके. iOS और ऐप्लिकेशन के लिए, OAuth क्लाइंट आईडी ऐप्लिकेशन टाइप को iOS के तौर पर कॉन्फ़िगर किया जाना चाहिए. यह ऐप्लिकेशन, Home API को भी कॉल करेगा. इस सुविधा को चालू करने के लिए, Google Cloud प्रोजेक्ट में एपीआई चालू होना चाहिए.
OAuth क्लाइंट आईडी जनरेट करना
- Google Cloud Console में, प्रोजेक्ट सिलेक्टर डैशबोर्ड पर जाएं. इसके बाद, वह प्रोजेक्ट चुनें जिसका इस्तेमाल करके आपको OAuth क्रेडेंशियल बनाने हैं.
- सबसे ऊपर बाईं ओर मौजूद मेन्यू बटन > सभी प्रॉडक्ट देखें > एपीआई और सेवाएं पर क्लिक करके, एपीआई और सेवाएं पेज पर जाएं.
- नेविगेशन मेन्यू में, क्रेडेंशियल पर क्लिक करें.
अगर आपने अब तक इस Google Cloud प्रोजेक्ट के लिए, सहमति स्क्रीन को कॉन्फ़िगर नहीं किया है, तो आपको सहमति स्क्रीन कॉन्फ़िगर करें बटन दिखेगा. ऐसे में, यहां दिए गए तरीके का इस्तेमाल करके, सहमति लेने के लिए स्क्रीन को कॉन्फ़िगर करें. अगर आपकी OAuth सहमति स्क्रीन पहले से ही कॉन्फ़िगर की जा चुकी है और उसकी पब्लिशिंग स्थिति जांच पर सेट है, तो पक्का करें कि जिन टेस्ट खातों का इस्तेमाल किया जाएगा उन्हें टेस्ट करने वाले लोग ग्रुप में जोड़ा गया हो. अगर ऐसा नहीं है, तो अगले चरण पर जाएं.
- इस्तेमाल के उदाहरण के हिसाब से, इंटरनल या एक्सटर्नल चुनें. इसके बाद, बनाएं पर क्लिक करें. इसके बाद, OAuth के लिए सहमति लेने वाली स्क्रीन पैनल दिखेगा.
- स्क्रीन पर दिए गए निर्देशों के मुताबिक, ऐप्लिकेशन की जानकारी वाले पेज पर जानकारी डालें. इसके बाद, सेव करें और जारी रखें पर क्लिक करें. आपको स्कोप वाला पैनल दिखेगा.
- आपको कोई स्कोप जोड़ने की ज़रूरत नहीं है. इसलिए, सेव करें और जारी रखें पर क्लिक करें. टेस्ट यूज़र पैनल दिखता है.
- अगर आपने सहमति लेने के लिए इंटरनल स्क्रीन बनाने का विकल्प चुना है, तो आपको अपने ऐप्लिकेशन का ऐक्सेस टेस्ट करने के लिए उपयोगकर्ताओं को जोड़ना होगा. उपयोगकर्ता जोड़ें पर क्लिक करें. उपयोगकर्ता जोड़ें पैनल दिखता है. टेस्ट करने वाले उपयोगकर्ताओं के पास, आपके ऐप्लिकेशन में अनुमतियां देने का अधिकार होता है. खाली फ़ील्ड में, एक या उससे ज़्यादा Google खाते के ईमेल पते जोड़ें. इसके बाद, जोड़ें पर क्लिक करें.
- सेव करें और जारी रखें पर क्लिक करें. आपको खास जानकारी वाला पैनल दिखेगा.
- OAuth सहमति स्क्रीन की जानकारी देखें. इसके बाद, डैशबोर्ड पर वापस जाएं पर क्लिक करें.
बाईं ओर मौजूद मेन्यू पैनल में, क्रेडेंशियल पर क्लिक करके अपना OAuth क्लाइंट आईडी बनाएं.
- क्रेडेंशियल बनाएं बटन पर क्लिक करें. इसके बाद, OAuth क्लाइंट आईडी चुनें.
- ऐप्लिकेशन टाइप में जाकर, iOS चुनें.
- अपने ऐप्लिकेशन के आइडेंटिफ़ायर और Apple डेवलपर टीम आईडी के साथ बंडल आईडी डालें. अन्य फ़ील्ड ज़रूरी नहीं हैं और इन्हें खाली छोड़ा जा सकता है.
- बनाएँ पर क्लिक करें और बनाई गई क्लाइंट आईडी या डाउनलोड PLIST नोट करें. इसका इस्तेमाल बाद में, अनुमतियों के फ़्लो से जुड़ी सुविधा को चालू करने के लिए किया जाएगा. ज़्यादा जानकारी के लिए, अनुमति देने के क्रेडेंशियल बनाना सेक्शन देखें.
- क्रेडेंशियल बनाएं बटन पर क्लिक करें. इसके बाद, OAuth क्लाइंट आईडी चुनें.
होम एपीआई चालू करना
Home API का ऐक्सेस चालू करें.
- एपीआई और सेवाएं टैब में, चालू किए गए एपीआई और सेवाएं पर क्लिक करें.
- पेज पर सबसे ऊपर मौजूद, एपीआई और सेवाएं चालू करें पर क्लिक करें.
HOME APIखोजें और उसे चुनें.- 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 प्रोजेक्ट कॉन्फ़िगर करें:
प्रोजेक्ट के कॉन्फ़िगरेशन में बदलाव करने के लिए, Xcode के नेविगेशन पैनल में मौजूद
GoogleHomeAPISampleIOSफ़ाइल चुनें.सबसे ऊपर मौजूद, सामान्य टैब पर क्लिक करें. इसके बाद, बाईं ओर मौजूद टारगेट
GoogleHomeAPISampleIOSचुनें.नीचे की ओर तब तक स्क्रोल करें, जब तक आपको फ़्रेमवर्क, लाइब्रेरी, और एम्बेड किया गया कॉन्टेंट सेक्शन नहीं दिखता. आपको Home API Frameworks की सूची में ये दोनों दिखेंगे.
एम्बेड करें कॉलम में, एम्बेड करें और हस्ताक्षर करें को चुनें. इसके लिए,
GoogleHomeSDK.xcframeworkपर क्लिक करें. दूसरे फ़्रेमवर्क,GoogleHomeTypes.xcframeworkको एम्बेड न करें के तौर पर छोड़ दिया जाना चाहिए.सूची में सबसे नीचे, + आइकॉन पर क्लिक करें.
जब कहा जाए, तब
SafariServices.frameworkखोजें और जोड़ें पर क्लिक करें. पक्का करें कि इस एंट्री के लिए, जोड़ें कॉलम को न जोड़ें पर सेट किया गया हो.टारगेट में बदलाव करने के लिए, टारगेट में जाकर
MatterAddDeviceExtensionपर क्लिक करें.नीचे की ओर तब तक स्क्रोल करें, जब तक आपको फ़्रेमवर्क और लाइब्रेरी सेक्शन न दिख जाए. आपको
GoogleHomeSDK.xcframeworkदिखना चाहिए.एम्बेड करें कॉलम में, एम्बेड न करें चुनें.
डेवलपर और OAuth क्लाइंट आईडी कॉन्फ़िगर करें:
- नेविगेशन पैन में, GoogleHomeAPISampleIOS फ़ोल्डर ढूंढें. इसके बाद, बदलाव करने के लिए Info.plist फ़ाइल खोलें.
Info.plist फ़ाइल में, GIDClientID को अपने OAuth क्लाइंट आईडी (OAuth सहमति सेट अप करें सेक्शन देखें), अपने क्लाउड प्रोजेक्ट से जुड़े Cloud Project Number, और GIDTeamID को OAuth रजिस्ट्रेशन प्रोसेस के दौरान इस्तेमाल किए गए डेवलपर खाते के Apple Developer Team ID से भरें.
ऐप्लिकेशन की पुष्टि करने की सुविधा जोड़ें:
- प्रोजेक्ट कॉन्फ़िगरेशन में बदलाव करने के लिए, Xcode के नेविगेशन पैन में मौजूद
GoogleHomeAPISampleIOSप्रोजेक्ट फ़ाइल चुनें. - सबसे ऊपर मौजूद, Signing and Capabilities टैब पर क्लिक करें. इसके बाद, TARGETS सेक्शन में बाईं ओर मौजूद टारगेट
GoogleHomeAPISampleIOSचुनें. - Signing and Capabilities टैब के ठीक नीचे, + Capability पर क्लिक करें. इसके बाद, App Attest खोजें.
- जोड़ने के लिए, App Attest पर क्लिक करें. अगर खोज में यह सुविधा मौजूद नहीं है, तो हो सकता है कि प्रोजेक्ट में इसे पहले ही जोड़ दिया गया हो.
- प्रोजेक्ट कॉन्फ़िगरेशन में बदलाव करने के लिए, Xcode के नेविगेशन पैन में मौजूद
ऐप्लिकेशन ग्रुप की सुविधा जोड़ें.
- GoogleHomeAPISampleIOS प्रोजेक्ट > GoogleHomeAPISampleIOS लक्ष्य पर जाएं.
- Signing & Capabilities > + Capability पर क्लिक करें.
- ऐप्लिकेशन समूह क्षमता चुनें.
- ऐप्लिकेशन ग्रुप में जाकर, + आइकॉन पर क्लिक करें. इसके बाद, अपने ऐप्लिकेशन के लिए ऐप्लिकेशन ग्रुप आइडेंटिफ़ायर जोड़ें. यह वही आइडेंटिफ़ायर होना चाहिए जिसे आपने Apple Developer Portal में जोड़ा था.
- MatterAddDeviceExtension लक्ष्य को ऐप्लिकेशन समूहों में जोड़ने के लिए इन चरणों को दोहराएँ.
बंडल आईडी अपडेट करें
- अपने डेवलपर सर्टिफ़िकेट और प्रोविज़निंग प्रोफ़ाइलों का इस्तेमाल करके, हार्डवेयर पर सैंपल ऐप्लिकेशन को चलाने और डिप्लॉय करने के लिए, आपको एक यूनीक बंडल आइडेंटिफ़ायर देना होगा. यह वही आइडेंटिफ़ायर होना चाहिए जो आपके OAuth क्लाइंट क्रेडेंशियल (ऊपर देखें) से जुड़ा है.
- प्रोजेक्ट कॉन्फ़िगरेशन में बदलाव करने के लिए, Xcode के नेविगेशन पैन में मौजूद
GoogleHomeAPISampleIOSप्रोजेक्ट फ़ाइल चुनें. - सबसे ऊपर मौजूद, Signing and Capabilities टैब पर क्लिक करें. इसके बाद, TARGETS सेक्शन में बाईं ओर मौजूद टारगेट
GoogleHomeAPISampleIOSचुनें. - साइनिंग सेक्शन में, बंडल आइडेंटिफ़ायर फ़ील्ड को चुनें. इसके बाद, ऐप्लिकेशन के लिए यूनीक आइडेंटिफ़ायर डालें.
- आवश्यक अधिकारों के साथ उस बंडल से संबंधित प्रोविज़निंग प्रोफ़ाइल का चयन करें या उसे स्थापित करें.
- एक्सटेंशन के लिए बंडल पहचानकर्ता इनपुट करने और उसकी पंजीकृत प्रोविज़निंग प्रोफ़ाइल आयात करने के लिए
MatterAddDeviceExtensionलक्ष्य के लिए इन चरणों को दोहराएँ.
कोड में, रजिस्टर किए गए ऐप्लिकेशन ग्रुप के आइडेंटिफ़ायर को अपडेट करें.
- ऐप्लिकेशन को एसडीके इंस्टेंस कॉन्फ़िगर करना होगा, ताकि डिवाइस कमीशनिंग जैसी सुविधाओं के लिए ऐप्लिकेशन ग्रुप आइडेंटिफ़ायर का इस्तेमाल किया जा सके. Apple डेवलपर पोर्टल में पंजीकृत ऐप समूह आईडी का उपयोग करने के लिए ऐप को अपडेट करें, इसके लिए स्ट्रिंग
HOME_API_TODO_ADD_APP_GROUPखोजें और प्रत्येक इंस्टेंस को इसके साथ बदलें.
ये कॉन्फ़िगरेशन, इन फ़ाइलों में किए जाते हैं:
- SDK के शुरू होने पर
GoogleHomeAPISampleIOS.swift. RequestHandler.swiftCommissioningManager.swift
- ऐप्लिकेशन को एसडीके इंस्टेंस कॉन्फ़िगर करना होगा, ताकि डिवाइस कमीशनिंग जैसी सुविधाओं के लिए ऐप्लिकेशन ग्रुप आइडेंटिफ़ायर का इस्तेमाल किया जा सके. Apple डेवलपर पोर्टल में पंजीकृत ऐप समूह आईडी का उपयोग करने के लिए ऐप को अपडेट करें, इसके लिए स्ट्रिंग