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

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

iOS 14

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

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

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

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

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

שינויים ב-Cast SDK

הפעלת Cast בפעם הראשונה

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

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

הפעלת Cast לא זמינה

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

האפשרות 'זרימה עם Cast' לא זמינה

האפליקציה מתעדכנת ב-iOS 14

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

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

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

  2. הוספת NSBonjourServices אל Info.plist

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

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

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

    צריך לעדכן את ההגדרה הבאה של NSBonjourServices ולהחליף את 'ABCD1234' במזהה האפליקציה שלך.

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

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

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

    ההודעה הזו תופיע כחלק מתיבת הדו-שיח 'גישה לרשת המקומית ב-iOS' כפי שמוצג בדוגמה.

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

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

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

התחלת תהליך של גילוי מכשיר Cast

כברירת מחדל, גילוי מכשיר 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) שלי עם Cast SDK בגרסה 4.4.8 ו-Xcode 12?

יכול להיות שהאפליקציה לא תוכל לאתר מכשירי Cast ברשת המקומית, אלא אם קיבלת מ-Apple הרשאה לשידור מרובה משתתפים ברשת. לתשומת ליבך, Apple לא תנפיק הרשאות עבור שידורים מרובים רק למטרת תמיכה ב-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, צריך לבצע קריאה מפורשת ל-method 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 לא יופיע אם המשתמש לא העניק הרשאת מיקום. שדרוג ל-Cast SDK 4.4.4 נדרש כדי להבטיח חוויית העברה אמינה ב-iOS 13.