عیب‌یابی

برنامه نمونه

اگر هنگام استفاده از «میاناهای برنامه‌سازی کاربردی Home» با مشکلی مواجه شدید، می‌توانید گزارش‌ها را برای اشکال‌زدایی بیشتر جمع‌آوری کنید. برای جمع‌آوری گزارش‌ها از دستگاه همراه به Xcode نیاز است. اگر به کمک Google نیاز دارید، گزارش‌های هر دو دستگاه iOS و هاب را جمع‌آوری کنید و در ردیاب مشکل، گزارشی با اطلاعات مربوطه و گزارش‌های مرتبط با آن باز کنید.

جمع‌آوری گزارش‌های iOS

دستگاه همراه شما باید در تمام مراحل مربوط به Xcode به ماشین محلی‌تان متصل باشد.

گزارش‌های برنامه و گزارش‌های کیت توسعه نرم‌افزار مستقیماً در کنسول Xcode نمایش داده می‌شود و قابل جمع‌آوری است. وقتی دستگاه همراهتان به ماشین محلی متصل باشد و برنامه را ازطریق Xcode اجرا کنید، کنسول به‌طور خودکار گزارش‌های برونداد استاندارد (stdout) و خطای استاندارد (stderr) را از هر دو لایه برنامه و «کیت توسعه نرم‌افزار Home» یکپارچه ضبط و جاری‌سازی می‌کند. این کار روشی ساده برای نظارت بر فرایندهای مقداردهی اولیه هم‌زمان، تعاملات API، و رویدادهای SDK درطول توسعه و اشکال‌زدایی ارائه می‌دهد.

درحال جمع‌آوری گزارش‌های افزونه از Xcode

اگر هنگام استفاده از «میاناهای برنامه‌سازی کاربردی Home» با مشکلی مواجه شدید، می‌توانید گزارش‌ها را برای اشکال‌زدایی بیشتر جمع‌آوری کنید.

  1. در Xcode، به Debug (عیب‌یابی) در نوار منو بالا بروید و روی Attach to Process by PID or Name (پیوستن به فرایند براساس PID یا نام) کلیک کنید.

    اشکال‌زدایی برنامه نمونه

  2. در زیر PID یا نام فرایند، MatterExtension را انتخاب کنید و روی پیوست کردن کلیک کنید.

    افزونه پیوست برنامه نمونه

  3. اگر روی بالا سمت چپ کلیک کنید، منتظر پیوستن به MatterAddDeviceExtension در iPhone را خواهید دید.

    وضعیت انتظار برنامه نمونه

  4. روی برگه کلیک کنید و MatterAddExtension را انتخاب کنید.

    برنامه نمونه درحال افزودن افزونه Matter

  5. کنسول گزارش «افزونه» را ثبت خواهد کرد.

‫Sherlog: ردیابی رویداد بین پشته‌ای

‫Sherlog سرویس ردیابی بی‌درنگی است که نمای سرتاسری از تعاملات بین زیرساخت Google و سرویس‌های ابری شریک ارائه می‌دهد.

پیش‌نیاز: ردیابی نیازمند استفاده از حساب هم‌رسانی‌شده و هماهنگ‌شده با Google است (برای نمونه، حساب ثبت‌شده در GReg یا حساب نمایشی).

هدف اصلی: اشکال‌زدایی نقص‌های عملکردی و مشکلات یکپارچه‌سازی ابر به ابر (C2C) (برای نمونه، خطاهای پیوند حساب یا وضعیت‌های نادرست دستگاه) بدون نیاز به تغییرات کد تولید.

قابلیت‌ها: نمودارهای کامل فراخوانی RPC، بار داده درخواست/پاسخ، و فراداده برای اهداف SYNC،‏ EXECUTE،‏ QUERY، و «پیوند حساب» را ارائه می‌دهد.

گزارش‌های دستگاه هاب Fuchsia

بااستفاده از این روش می‌توانید گزارش‌های زیر را از هاب‌های Fuchsia جمع‌آوری کنید: * Google Nest Hub (نسل دوم) * Google Nest Hub Max

برای فعال کردن هاب برای بازیابی گزارش‌های محلی:

  1. ایمیلی حاوی «شماره سریال» و «مدل» دستگاه‌هایتان به مدیر فنی حساب Google (TAM) خود ارسال کنید. می‌توانید آن‌ها را با حروف کوچک در زیر دستگاه پیدا کنید.
  2. پس‌از قرار گرفتن در فهرست مجاز، باید این ویژگی را با دنبال کردن این مراحل فعال کنید:
    • از مرکز:
      1. از بالای صفحه‌نمایش تند به‌پایین بکشید
      2. روی نماد «تنظیمات» تک‌ضرب بزنید
      3. یافتن نسخه Fuchsia: در Nest Hub (نسل دوم)، به اطلاعات دستگاه > اطلاعات فنی > نسخه Fuchsia بروید
      4. ‫۷ بار روی «نسخه Fuchsia» تک‌ضرب بزنید. با این کار، گزینه‌های توسعه‌دهندگان فعال می‌شود
      5. برگشتن به منو سطح بالا
      6. روی «گزینه‌های توسعه‌دهندگان» تک‌ضرب بزنید
      7. روی «گزارش‌گیری شریک» تک‌ضرب بزنید
    • این ویژگی به‌مدت ۲۴ ساعت فعال خواهد شد. پس‌از آن، ویژگی گزارش‌گیری را از مرحله ۵ به بعد بازفعال کنید.
  3. نشانی IP مرکز کنترل را دریافت کنید:
    • از کانون، اگر صفحه‌نمایش داشته باشد:
      1. از بالای صفحه‌نمایش تند به‌پایین بکشید
      2. روی نماد «تنظیمات» تک‌ضرب بزنید
      3. نشانی IP دستگاه را پیدا کنید: در Nest Hub (نسل دوم)، به اطلاعات دستگاه > اطلاعات فنی > نشانی IP بروید
    • از برنامه Google Home (GHA) در تلفن:
    • برای بالا آوردن صفحه جزئیات دستگاه، روی دستگاه تک‌ضرب بزنید
    • برای باز کردن صفحه تنظیمات، روی نماد «تنظیمات» تک‌ضرب بزنید
    • نشانی IP دستگاه را پیدا کنید: به اطلاعات دستگاه > اطلاعات فنی > نشانی IP بروید
  4. برای بازیابی گزارش‌های کانون، از رایانه‌ای که در همان شبکه Wi-Fi است، درخواست GET HTTP به کانون ارسال می‌کنید.
    • درگاه و مسیر نقطه پایانی را یادداشت کنید:
      curl -k -X GET https://ip-address:8443/setup/get_logs --output output-file
      
    • اتصال فقط برای یک دقیقه باز می‌ماند، اما داده‌های بازیابی‌شده از بافر معمولاً شامل ۲۰ تا ۳۰ دقیقه از رویدادهای گذشته است.
      • در حالت ایده‌آل، گزارش‌ها بلافاصله پس‌از تکمیل رویه آزمایش بااستفاده از این روش استخراج می‌شوند تا اطمینان حاصل شود که بافر حاوی محتوای مربوط به آزمایش است (مشابه گزارش‌های اشکال Android).

خودکارسازی‌ها

تشخیص لبه

ویژگی خودکارسازی‌ها در بوم‌سازگان Google Home تشخیص لبه است که منطقی است که تأیید می‌کند راه‌انداز فقط زمانی فعال می‌شود که تغییر وضعیت واقعی وجود داشته باشد، نه به‌روزرسانی وضعیت که صرفاً وضعیت قبلی دستگاه را تکرار می‌کند.

برای مثال، اگر روشن کردن چراغ یک شروع‌کننده باشد، تشخیص لبه تأیید می‌کند که شروع‌کننده فقط درصورتی فعال می‌شود که دستگاه چراغ از حالت خاموش به روشن برود، نه از حالت روشن به روشن (بدون تغییر).

خودکارسازی طبق انتظار عمل نمی‌کند

پس‌از درنظر گرفتن تشخیص لبه، اگر خودکارسازی طبق انتظار عمل نکرد:

  1. هر دستگاه را بررسی کنید تا مطمئن شوید که مستقل از خودکارسازی شما به‌درستی کار می‌کند.

  2. به نمودار خودکارسازی برای خودکارسازی‌تان نگاهی بیندازید و آن را با زبان خودکارسازی خودکارسازی‌تان مقایسه کنید تا هرگونه پیش‌فرض بالقوه نادرست از طرف خودتان را آشکار کنید.

  3. وضعیت دستگاه را در برنامه Google Home درطول اجرای خودکارسازی‌تان مشاهده کنید.

  4. بررسی کنید تا مطمئن شوید همه دستگاه‌هایی که توسط خودکارسازی ارجاع داده شده‌اند در ساختاری که انتظار دارید در آن باشند حضور دارند. حذف دستگاهی که خودکارسازی به آن وابسته است می‌تواند پیامدهای ناخواسته‌ای داشته باشد. تأثیر حذف دستگاه بر خودکارسازی‌ها را ببینید.

خودکارسازی زمانی اجرا می‌شود که نباید اجرا شود

اگر خودکارسازی شما زمانی اجرا می‌شود که نباید اجرا شود، معیارهای شروع‌کننده را بررسی کنید. ممکن است لازم باشد منطق بیشتری اضافه کنید تا مطمئن شوید تغییر وضعیت فقط یک‌بار ثبت می‌شود و خودکارسازی فقط یک‌بار راه‌اندازی می‌شود.

خودکارسازی کامپایل نمی‌شود

مطمئن شوید که برنامه شما حاوی همه موارد وارداتی لازم، ازجمله هر کلاس مربوط به انواع مختلف گره و همچنین ویژگی‌هایی که به آن‌ها ارجاع می‌دهید، باشد.

خودکارسازی ایجادشده درستی‌سنجی نمی‌شود

اگر ساخت خودکارسازی از اعتبارسنجی عبور نکند، پیام هشدار یا خطایی اطلاعاتی درباره مشکل ارائه می‌دهد. برای اطلاعات بیشتر، به ValidationIssueType مرجع مراجعه کنید.

OAuth

اگر کارخواه OAuth موجودی دارید

اگر ازقبل کارخواه OAuth درستی‌سنجی‌شده‌ای برای برنامه منتشرشده دارید، می‌توانید از کارخواه OAuth موجودتان برای آزمایش «میاناهای برنامه‌سازی کاربردی خانه» استفاده کنید.

برای آزمایش و استفاده از Home APIs، ثبت‌نام Google Home Developer Console الزامی نیست. بااین‌حال، حتی اگر کارخواه OAuth درستی‌سنجی‌شده‌ای از یک یکپارچه‌سازی دیگر داشته باشید، همچنان برای انتشار برنامه‌تان به ثبت Developer Console تأییدشده نیاز خواهید داشت.

ملاحظات زیر اعمال می‌شود:

  • هنگام استفاده از کارخواه OAuth موجود، محدودیت ۱۰۰ کاربر وجود دارد. برای کسب اطلاعات درباره افزودن کاربران آزمایش، به تولید شناسه کارخواه OAuth مراجعه کنید. صرف‌نظر از درستی‌سنجی OAuth، محدودیت اعمال‌شده توسط Home APIs برای تعداد کاربرانی که می‌توانند به برنامه شما اجازه دهند ۱۰۰ نفر است. این محدودیت پس‌از تکمیل ثبت‌نام Developer Console برداشته می‌شود.

  • Developer Console ثبت باید وقتی آماده‌اید اعطای مجوز نوع دستگاه را ازطریق OAuth محدود کنید برای تأیید ارسال شود تا برای به‌روزرسانی برنامه‌تان با «میاناهای برنامه‌سازی کاربردی Home» آماده شوید.

برای Google Cloud برنامه‌ای که درستی‌سنجی OAuth آن‌ها هنوز معلقه است، کاربران نمی‌توانند جریان OAuth را تا زمانی که درستی‌سنجی تکمیل نشده است تکمیل کنند. تلاش برای اعطای اجازه‌ها با خطای زیر ناموفق خواهد بود:

Access blocked: <Project Name> has not completed the Google verification process.