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

‫Cast Framework תומך ב-iOS 14 ואילך, והוא מגיע גם כמסגרת סטטית וגם כמסגרת דינמית.

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

הגדרה של Xcode

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 בהקדם האפשרי.

iOS 13

‫iOS 12

מוודאים שהמתג Access WiFi Information (גישה לפרטי Wi-Fi) בקטע Capabilities (יכולות) של היעד מוגדר למצב 'On' (מופעל).

בנוסף, פרופיל ההקצאה צריך לתמוך ביכולת Access WiFi Information. אפשר להוסיף אותו ב-Apple Developer Portal.

הגדרת CocoaPods

הדרך המומלצת לשילוב של Google Cast היא באמצעות CocoaPods. כדי לבצע שילוב, משתמשים ב-CocoaPods‏ google-cast-sdk.

כדי להתחיל, פועלים לפי המדריך לתחילת העבודה.

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

דוגמה להוספת google-cast-sdk CocoaPod ל-Podfile:

use_frameworks!

platform :ios, '14.0'

def target_pods
  pod 'google-cast-sdk'
end

target 'CastVideos-objc' do
  target_pods
end
target 'CastVideos-swift' do
  target_pods
end

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

בקטע הקוד הזה, גרסה 4.8.3 והגרסאות עד הגרסה העיקרית הבאה (major.minor.patch) מורשות:

pod 'google-cast-sdk', '~> 4.8.3'

לדוגמה, המחרוזת '‎~> 1.6.7' תכלול את כל הגרסאות מ-1.6.7 ועד גרסה 2.0.0, לא כולל גרסה 2.0.0.

הגדרה ידנית

ההוראות הבאות מתייחסות להוספת Cast iOS SDK לפרויקט בלי להשתמש ב-CocoaPods:

הורדות

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

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

סטטי דינמי

שלבי ההגדרה

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

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

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

  1. מגדירים את ספריית Protobuf עם גרסה מינימלית v3.13.
    1. אם הפרויקט שלכם משתמש ב-CocoaPods:
      1. פותחים את Podfile ומסירים את google-cast-sdk אם הוא מופיע:
        pod 'google-cast-sdk'
      2. מוסיפים את הספרייה Protobuf אם היא לא קיימת:
        pod 'Protobuf', '3.13'
      3. מריצים את הפקודה pod install בתיקיית הבסיס של הפרויקט.
    2. אם אתם לא משתמשים ב-CocoaPods בפרויקט:
      1. מסירים את הגרסה הנוכחית של GoogleCastSDK, אם היא קיימת.
      2. מוסיפים את ספריית Protobuf בגרסה 3.13 ומעלה, לפי ההוראות שמופיעות במאגר Protobuf GitHub.
  2. בפרויקט Xcode, מוסיפים את הדגלים -ObjC -lc++ אל Build Settings (הגדרות בנייה) > Other Linker Flags (דגלי מקשר אחרים).
  3. מאודרים את התיקייה Resources בספרייה שחולצה וגוררים את GoogleCastCoreResources.bundle,‏ GoogleCastUIResources.bundle ו-MaterialDialogs.bundle אל הפרויקט לצד GoogleCast.xcframework שהוספתם קודם. מסמנים את האפשרות 'העתקת כל הפריטים אם צריך' ומוסיפים לכל יעדי הטרגוט.

הגדרה של Mac Catalyst

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