הרשאות וגילויים למכשירי iOS

החל מ-iOS 14, מערכת ההפעלה תאכוף הרשאות והגבלות חדשות שמשפיעות על חוויית המשתמש של Cast. השינוי ישפיע גם על האופן שבו בונים את Cast SDK באפליקציה. כדי לשמור על הפונקציונליות של Cast עם הגרסאות האחרונות של iOS, צריך לבצע עדכונים על מנת לטפל בשינויים האלה בהרשאות.

iOS 14

על המפתחים לעדכן את אפליקציות השולחים של iOS Cast ל-Google Cast SDK בגרסה 4.6.0 ואילך. הגרסאות האלה תומכות ב-iOS 14 ובדרישות של iOS.

החל מ-iOS 14, אפליקציות שסורקות מכשירים ברשת המקומית יציגו עכשיו למשתמשים תיבת דו-שיח חד-פעמית להרשאות כדי למצוא מכשירים ברשת המקומית ולהתחבר אליהם. פלטפורמת Cast משתמשת ברשת המקומית כדי לגלות מכשירי CAST ולשלוט בהם, כך שאם המשתמש ידחה את ההרשאה, הוא לא יוכל להעביר (cast).

כדי לשפר את חוויית המשתמש, אנחנו מבצעים כמה שינויים בחוויית המשתמש ב-SDK של האפליקציות שמשתמשות בבורר המכשירים הרגיל. השינויים האלה בחוויית המשתמש מבהירים למשתמשים למה נדרשות הרשאות גישה לרשת המקומית, וכן איך מפעילים העברה אם הגישה למכשיר הרשת המקומית מושבתת.

אפליקציות שפותחו באמצעות גרסאות של Cast SDK עם גרסה 4.4.8 או גרסאות קודמות ימשיכו לפעול, כל עוד הן נוצרו באמצעות Xcode 11.7 ומטה. אם אתם מפתחים ל-iOS 14 עם Xcode 12 ואילך, מומלץ לעדכן ל-Cast SDK מגרסה 4.6.0 ואילך כדי להבטיח שאפליקציית Cast תמשיך לפעול כראוי.

אפשר להוריד את Cast iOS SDK v4.6.0 ואילך עם CocoaPods, על ידי ביצוע הגדרת CocoaPods או באופן ידני באמצעות הגדרה ידנית. הגרסה הזו כוללת שינויים במנגנון הגילוי הבסיסי, כדי לאפשר לאפליקציות שנבנו באמצעות Xcode 12 למצוא מכשירי CAST ברשת. לחצן הפעלת Cast אמור להופיע תמיד. אם אין מכשירים זמינים כשהמשתמש מקיש על לחצן ההעברה, תופיע תיבת דו-שיח עם הנחיות לגבי הסיבות האפשריות לכך שמכשירים לא זמינים, כולל מידע על הפעלה מחדש של הרשאת גישה לרשת המקומית.

שינויים ב-Cast SDK

העברה בפעם הראשונה

בפעם הראשונה שמשתמש ינסה לבצע העברה, תופיע תיבת דו-שיח מעברון של גישה לרשת מקומית (LNA) שבה מוסבר למה צריך גישה לרשת המקומית, ולאחר מכן תופיע ההודעה ש-Apple מספקת ל-iOS לגבי הרשאות הגישה לרשת המקומית. הדוגמאות הבאות ממחישות את הזרימה:

תהליך הרשאות הגישה לרשת המקומית

לא ניתן להעביר (cast)

החל מגרסה 4.6.0 של ה-SDK של השולח ב-iOS, לחצן הפעלת Cast מופיע תמיד כשהמשתמש מחובר ל-Wi-Fi. כשמכשירי CAST לא זמינים, הקשה על לחצן הפעלת Cast מציגה תיבת דו-שיח עם רמזים למשתמש לגבי הסיבות האפשריות לכך שהעברה לא זמינה, כפי שמוצג בסימולציות הבאות:

תהליך ההעברה (cast) לא זמין

עדכון האפליקציה ב-iOS 14

  1. מוסיפים את Cast iOS SDK 4.8.0 לפרויקט

    אם משתמשים ב-CocoaPods, צריך להשתמש ב-pod update כדי להוסיף את גרסת 4.8.0 SDK לפרויקט.

    אחרת, מושכים את ה-SDK באופן ידני.

  2. הוספה של NSBonjourServices ל-Info.plist

    צריך לציין את הערך NSBonjourServices ב-Info.plist כדי לאפשר בהצלחה לגלות את הרשת המקומית ב-iOS 14.

    כדי שגילוי המכשירים יפעל כראוי, צריך להוסיף את _googlecast._tcp וגם את _<your-app-id>._googlecast._tcp בתור שירותים.

    ה-appID הוא מזהה המקבל, שהוא אותו מזהה שמוגדר ב-GCKDiscoveryCriteria.

    מעדכנים את ההגדרה של NSBonjourServices בדוגמה הבאה ומחליפים את 'ABCD1234' במזהה ה-appID.

    <key>NSBonjourServices</key>
    <array>
      <string>_googlecast._tcp</string>
      <string>_ABCD1234._googlecast._tcp</string>
    </array>
  3. הוספה של NSLocalNetworkUsageDescription אל Info.plist

    מומלץ מאוד להתאים אישית את ההודעה שמוצגת בהודעה 'רשת מקומית' על ידי הוספת מחרוזת הרשאה ספציפית לאפליקציה בקובץ Info.plist של האפליקציה עבור NSLocalNetworkUsageDescription. למשל, כדי לתאר את ההעברה ושירותי גילוי אחרים כמו DIAL.

    <key>NSLocalNetworkUsageDescription</key>
    <string>${PRODUCT_NAME} מאפשר להשתמש ברשת המקומית כדי לגלות מכשירים שתומכים ב-Cast ברשת ה-Wi-Fi שלך.</string>

    ההודעה הזו תופיע כחלק מתיבת הדו-שיח של iOS Local Network Access, כפי שמוצג בדוגמה.

    תמונת תיבת דו-שיח של הרשאות גישה לרשת המקומית של Cast
  4. פרסום מחדש של האפליקציה ב-Apple App Store

    מומלץ גם לפרסם מחדש את האפליקציה בגרסה 4.8.0 בהקדם האפשרי.

התאמות אישיות

התחלת הגילוי של מכשירי העברה

כברירת מחדל, גילוי מכשיר CAST מתחיל בפעם הראשונה שהמשתמש מקיש על לחצן הפעלת Cast (GCKUICastButton). אם זו הפעם הראשונה שהמשתמש ניסה להשתמש באפליקציית Cast ברשת המקומית אחרי השדרוג ל-iOS 14, יופיע מודעת המעברון החדשה של LNA, ולאחר מכן תופיע תיבת הדו-שיח של הרשאות הגישה לרשת המקומית ב-iOS.

יש תכונה חדשה לבדיקה שמאפשרת לקבוע מתי גילוי המכשיר יתחיל ובהתנהגות של רכיבים מסוימים בחוויית המשתמש:

startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)

ערך ברירת המחדל הוא true. הדגל הזה רלוונטי רק כשהדגל GCKCastOptions::disableDiscoveryAutostart מוגדר ל-false.

אם קובעים במדיניות את הערך true, הגילוי של מכשירי CAST מתחיל כשמשתמש מקיש על GCKUICastButton בפעם הראשונה. תוצג למשתמשים הודעה שמבהירה להם למה צריך הרשאה לרשת המקומית. לאחר ההודעה הזו, תוצג ההודעה LNA ב-iOS 14. הגילוי של מכשיר CAST יתחיל אחרי אישור ההודעה.

בהשקות הבאות של האפליקציה, GCKUICastButton תמיד מוצג.

אם קובעים במדיניות את הערך false, גילוי המכשירים יתחיל על סמך ערך הדגל GCKCastOptions::disableDiscoveryAutostart.

שאלות נפוצות

מה יקרה אם אשיק מחדש את האפליקציה שלי לשליחת העברות עם Cast SDK בגרסאות 4.4.8 ו-Xcode 12?

יכול להיות שלאפליקציה שלך לא תהיה אפשרות לאתר מכשירי CAST ברשת המקומית, אלא אם יש לך הרשאת שידור לכמה שידורים (multicast) מ-Apple. לתשומת ליבך, Apple לא תקצה הרשאות Multicast רק למטרות תמיכה ב-Cast. אם אתם מתכננים לפתח באמצעות Xcode 12, עליכם לפרסם את האפליקציה עם Cast 4.6.0.

אם אשיק מחדש את האפליקציה שלי עם Cast SDK החדש, מה המשתמשים שלי יפעלו ב-iOS 13 או בממשק הקודם?

הם ימשיכו לראות את אותה חוויית משתמש שהייתה להם לפני ההשקה מחדש של האפליקציה. שינויים גלויים למשתמשים מוגבלים למשתמשים שפועלים ב-iOS 14.

מה אצטרך לעשות כדי לעדכן את האפליקציה שלי לאחר פרסום הגרסה החדשה של Cast SDK?

  • צריך לעדכן את Info.plist של האפליקציה כך שיכלול תיאור של השימוש ברשת המקומית.
  • עליך להוסיף את NSBonjourServices ל-Info.plist של האפליקציה ולספק את שמות שירותי Bonjour להעברה (cast) ואת מזהה האפליקציה.
  • עליך לשדרג את אפליקציית השולח כדי להשתמש ב-Cast SDK 4.6.0.
  • מפיצים מחדש את האפליקציה ב-Apple App Store.

למה מכשירים מפסיקים להופיע בבורר המכשירים המותאם אישית שלי אחרי ששדרגתי לגרסה 4.6.0?

זו בעיה ידועה, שעשויה לקרות אם משתמשים בבורר מכשירים מותאם אישית במקום בבורר המכשירים הרגיל. בגרסה 4.4.8 של Cast SDK ובגרסאות קודמות, סריקת המכשירים הייתה אוטומטית. החל מגרסה 4.6.0, צריך להפעיל באופן מפורש את השיטה startDiscovery במחלקה GCKDiscoveryManager כדי להתחיל בגילוי המכשיר.

הסיבה לשינוי הזה היא הבקשה להרשאות של גישה לרשת מקומית (LNA) שמופיעה אחרי הסריקה הראשונה של האפליקציה. כתוצאה מכך, ייתכן שתיבות דו-שיח של ההרשאות יופיעו במקומות אקראיים באפליקציה שלך.

מפתחים שבונים בורר מכשירים מותאם אישית לאפליקציה שלהם יצטרכו לספק מודעת מעברון חד-פעמית לפני ההפעלה הראשונה של סריקת מכשירים ב-iOS 14.

iOS מגרסה 13

ב-iOS 13 נוספו דרישות הרשאות חדשות שמשפיעות על אפליקציות שמשתמשות ב-Google Cast SDK.

החל מגרסה 4.4.3 של Google Cast SDK, יש SDK נוסף שלא נדרשת לו הרשאת Bluetooth®. האפשרות הזו זמינה גם באתר למפתחים וגם ב-google-cast-sdk-no-bluetooth Cocoapods החדש.

פירוט האפליקציות

לפניכם פירוט לפי גרסת ה-SDK של iOS שבה אתם משתמשים כרגע:

אפליקציות שפותחו באמצעות iOS 12 SDK או גרסאות קודמות

  • מומלץ לבצע פעולה. כשמריצים את iOS 13, הביצועים של גילוי המכשירים עשויים לרדת, אבל הם עדיין יהיו פונקציונליים. אנחנו ממליצים מאוד למפתחים לשדרג ל-Cast SDK גרסה 4.4.4, אם היא זמינה.
  • מערכת iOS 13 תבקש מהמשתמשים להעניק הרשאות Bluetooth® לאפליקציה.

אפליקציות שפותחו באמצעות iOS 13 SDK

  • נדרשת פעולה: עליך לעדכן ל-Cast SDK 4.4.4 או שלחצן ההעברה לא יופיע אם המשתמש לא העניק הרשאת מיקום. שדרוג ל-Cast SDK 4.4.4 הכרחי כדי להבטיח חוויית העברה אמינה ב-iOS 13.