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

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

iOS 14

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

החל מ-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 בגרסה 4.6.0 ואילך באמצעות CocoaPods לפי ההוראות להגדרה של CocoaPods, או באופן ידני לפי ההוראות להגדרה ידנית. הגרסה הזו כוללת שינויים במנגנון הגילוי הבסיסי כדי לאפשר לאפליקציות שנבנו באמצעות Xcode 12 למצוא מכשירי Cast ברשת. הלחצן להפעלת Cast אמור להופיע תמיד. אם אין מכשירים זמינים כשהמשתמש מקיש על לחצן ה-Cast, מוצג דו-שיח עם הנחיות לגבי הסיבות האפשריות לכך שאין מכשירים זמינים, כולל מידע על הפעלה מחדש של הרשאת הגישה לרשת המקומית.

שינויים ב-Cast SDK

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

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

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

אי אפשר להפעיל Cast

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

אי אפשר להשתמש ב-Flow עם 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 כשירותים.

    מזהה האפליקציה הוא מזהה המקלט, שהוא אותו מזהה שמוגדר ב-GCKDiscoveryCriteria.

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

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

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

    <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 מתחיל בפעם הראשונה שהמשתמש מקיש על לחצן 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 ברשת המקומית, אלא אם קיבלתם הרשאה לשימוש בשידור מרובה כתובות ברשת מאפל. הערה: אפל לא תעניק הרשאות לשימוש בשידור מרובה משתתפים רק לצורך תמיכה ב-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.
  • מפרסמים מחדש את האפליקציה ב-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-bluetoothCocoapods החדש.

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

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

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

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

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

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