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

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

iOS 14

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

החל מגרסה 14 של iOS, אפליקציות שסורקות מכשירים ברשת המקומית יציגה למשתמשים תיבת דו-שיח חד-פעמית עם הרשאות כדי למצוא מכשירים ברשת המקומית ולהתחבר אליהם. פלטפורמת Cast משתמשת ברשת המקומית כדי לאתר מכשירים שתומכים ב-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) עם הסבר על הסיבה לצורך בגישה לרשת המקומית, ולאחר מכן ההנחיה של Apple לגבי הרשאות הגישה לרשת המקומית ב-iOS. הדוגמאות הבאות מדגימות את התהליך:

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

Cast לא זמין

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

התהליך עם Cast לא זמין

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

  1. הוספת Cast iOS SDK 4.8.3 לפרויקט

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

    אחרת, משייכים את ה-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} uses the local network to discover Cast-enabled devices on your WiFi
    network.</string>

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

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

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

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

התחלת החיפוש של מכשירי 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 v4.4.8 ו-Xcode 12?

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

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

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

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

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

למה המכשירים הפסיקו להופיע בבורר המכשירים המותאם אישית אחרי השדרוג לגרסה 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 החדש.

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

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

אפליקציות שנוצרו באמצעות iOS SDK מגרסה 12 ואילך

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

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

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