הגדרה של פיתוח עם Cast Application Framework (CAF) ל-iOS

ה-Cast framework תומך ב-iOS 16 ואילך, והוא מגיע גם ב-frameworks סטטיים וגם ב-frameworks דינמיים.

במאמרי העזרה של Google Cast iOS API מפורטים תיאורים של כל המחלקות והשיטות.

הגדרת Xcode

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

    אם משתמשים ב- Swift Package Manager, מעדכנים את החבילה google-cast-ios-sdk לגרסה 4.8.6.

    אחרת, צריך להוסיף את ה-SDK באופן ידני.

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

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

    כדי שגילוי המכשירים יפעל כמו שצריך, צריך להוסיף גם את _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.6 בהקדם האפשרי.

הגדרה של Swift Package Manager

הדרך המומלצת לשלב את Google Cast היא באמצעות Swift Package Manager ‏(SPM). חבילת Cast iOS SDK זמינה במאגר google-cast-ios-sdk ב-GitHub.

כדי להוסיף את Cast iOS SDK לפרויקט ב-Xcode:

  1. ב-Xcode, לוחצים על File (קובץ) > Add Packages...‎ (הוספת חבילות).
  2. מזינים את כתובת ה-URL של המאגר: https://github.com/googlecast/google-cast-ios-sdk.
  3. בוחרים את הכללים לניהול גרסאות. לדוגמה, בוחרים באפשרות Up to Next Major Version עם גרסה מינימלית של 4.8.6 כדי לקבל עדכונים תואמים בלי שינויי תוכנה שעלולים לגרום לכשל לא צפויים.
  4. לוחצים על הוספת חבילה.
  5. בוחרים את המוצר GoogleCastDynamic או GoogleCastStatic ומוסיפים אותו ליעד האפליקציה.

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

חבילת Cast iOS SDK כוללת שני מוצרים:

  • ‫GoogleCastDynamic: ה-framework הדינמי. הוא כולל את כל משאבי הנכסים שנדרשים לרכיבי ממשק המשתמש של Cast, ולא דורש דגלי linker נוספים. באפליקציות שתומכות ב-Mac Catalyst צריך להשתמש ב-framework הדינמי. מידע נוסף זמין במאמר הגדרה של Mac Catalyst.
  • ‫GoogleCastStatic: ה-framework הסטטי. כדי להשתמש בו, צריך לבצע את שלבי ההגדרה הנוספים שמפורטים בקטע הגדרת מסגרת סטטית.

הגדרת מסגרת סטטית

אי אפשר לכלול חבילות משאבים ב-frameworks סטטיים. לכן, Swift Package Manager לא יכול לצרף באופן אוטומטי את משאבי הנכסים שנדרשים לרכיבי ממשק המשתמש של Cast (כמו תמונות של ממשק המשתמש, לוחות תכנון וקובצי לוקליזציה) למוצר GoogleCastStatic. אם מוסיפים את GoogleCastStatic ליעד, צריך לבצע את השלבים הבאים:

  1. בפרויקט Xcode, מוסיפים את הדגלים -ObjC -lc++ אל Build Settings (הגדרות ה-build) > Other Linker Flags (דגלים אחרים של מקשרים).
  2. אם האפליקציה משתמשת ברכיבי ממשק המשתמש של Cast, צריך להוסיף באופן ידני את חבילות הנכסים לפרויקט:
    1. מורידים את הספרייה הסטטית מהקטע Downloads. חשוב לוודא שהגרסה של הספרייה הסטטית תואמת לגרסה של החבילה שהוספתם.
    2. מאתרים את התיקייה Resources בספרייה שחילצתם וגוררים את כל קובצי .bundle לפרויקט Xcode. מסמנים את האפשרות "Copy all items if needed" (העתקת כל הפריטים במקרה הצורך) ומוסיפים לכל יעדי הטרגוט.

הגדרת CocoaPods

הגדרה ידנית

כדי להוסיף את Cast iOS SDK לפרויקט בלי להשתמש ב-Swift Package Manager, פועלים לפי ההוראות הבאות:

הורדות

אחרי שמורידים את הספרייה המתאימה, פועלים לפי שלבי ההגדרה כדי להוסיף את ה-framework לפרויקט.

ספריות Cast iOS Sender SDK 4.8.6:

סטטי דינמי

שלבי ההגדרה

כדי להתקין את הספרייה:

  1. מורידים את ה-SDK שמתאים לפרויקט ומחלצים אותו.
  2. מגדירים את ספריית GoogleCastSDK הדינמית:
  3. גוררים את הקובץ .xcframework שחילצתם לפרויקט הראשי בחלונית הניווט בפרויקט ב-Xcode. מסמנים את האפשרות "העתקת כל הפריטים במקרה הצורך" ומוסיפים לכל יעדי הטרגוט.
  4. ביעד של Xcode, בכרטיסייה General, בוחרים באפשרות Embed and Sign עבור GoogleCast.xcframework.

אם אתם מגדירים את הספרייה הדינמית, בצעו את השלבים הבאים בנוסף לשלבים הקודמים:

  1. מסירים את הגרסה הנוכחית של GoogleCastSDK, אם היא קיימת.
  2. מוסיפים את ספריית Protobuf בגרסה 3.13 ואילך, לפי ההוראות שמופיעות במאגר Protobuf ב-GitHub.

אם אתם מגדירים את הספרייה הסטטית, בצעו את השלבים הבאים בנוסף לשלבים הקודמים:

  1. בפרויקט Xcode, מוסיפים את הדגלים -ObjC -lc++ אל Build Settings (הגדרות ה-build) ‏> Other Linker Flags (דגלים אחרים של מקשר).
  2. מאתרים את התיקייה Resources בספרייה שחולצה וגוררים את כל קובצי ה-.bundle לפרויקט, לצד קובץ ה-GoogleCast.xcframework שהוספתם קודם. מסמנים את האפשרות "Copy all items if needed" (העתקת כל הפריטים במקרה הצורך) ומוסיפים לכל יעדי הטרגוט.

הגדרה של Mac Catalyst

באפליקציות שתומכות ב-Mac Catalyst, צריך להשתמש בספרייה הדינמית של Cast SDK. כדי להוסיף את ה-framework לפרויקט, פועלים לפי תהליך ההגדרה הידני. לאחר מכן, מחריגים באופן מותנה את Cast SDK מהיעד ב-Mac, כפי שמתואר במסמכי התיעוד של Apple. ספריות סטטיות עוברות הידור מראש לארכיטקטורת iOS, מה שגורם לשגיאת מקשר (linker) כשמבצעים build מול היעד של Mac.