מסגרת Cast תומכת ב-iOS מגרסה 14 ואילך, והיא זמינה במסגרות סטטיות ודינמיות.
בחומר העזר בנושא Google Cast API ל-iOS מפורטים תיאורים של כל הכיתות והשיטות.
הגדרת Xcode
iOS 14
-
הוספת Cast iOS SDK 4.8.3 לפרויקט
אם משתמשים ב-CocoaPods, משתמשים ב-
pod update
כדי להוסיף את ה-SDK בגרסה 4.8.3 לפרויקט.אחרת, משייכים את ה-SDK באופן ידני.
-
הוספת
NSBonjourServices
אלInfo.plist
מציינים את הערך
NSBonjourServices
ב-Info.plist
כדי לאפשר זיהוי של רשתות מקומיות ב-iOS 14.כדי שגילוי המכשירים יפעל כראוי, צריך להוסיף את
_googlecast._tcp
ואת_<your-app-id>._googlecast._tcp
כשירותים.הערך של appID הוא receiverID, שהוא אותו מזהה שמוגדר ב-
GCKDiscoveryCriteria
.מעדכנים את ההגדרה לדוגמה של
NSBonjourServices
ומחליפים את 'ABCD1234' במזהה האפליקציה שלכם. -
הוספת
NSLocalNetworkUsageDescription
ל-Info.plist
מומלץ מאוד להתאים אישית את ההודעה שמוצגת בהודעה של הרשת המקומית על ידי הוספת מחרוזת הרשאה ספציפית לאפליקציה בקובץ
Info.plist
של האפליקציה עבורNSLocalNetworkUsageDescription
, למשל כדי לתאר את הגילוי של Cast ושירותי גילוי אחרים, כמו DIAL.ההודעה הזו תופיע כחלק מתיבת הדו-שיח של גישה לרשת המקומית ב-iOS, כפי שמוצג במודל.
-
השקה מחדש של האפליקציה ב-Apple App Store
מומלץ גם לפרסם מחדש את האפליקציה באמצעות הגרסה 4.8.3 בהקדם האפשרי.
iOS 13
iOS 12
מוודאים שהמתג Access WiFi Information בקטע Capabilities של היעד מוגדר למצב 'מופעל'.
בנוסף, פרופיל הקצאת המשאבים צריך לתמוך ביכולת Access WiFi Information. אפשר להוסיף את זה ב-Apple Developer Portal.
הגדרת CocoaPods
הדרך המומלצת לשילוב Google Cast היא באמצעות CocoaPods. לשילוב, משתמשים ב-CocoaPods של google-cast-sdk
.
כדי להתחיל, אפשר לעיין במדריך למתחילים.
אחרי שמגדירים את CocoaPods, פועלים לפי המדריך לשימוש ב-CocoaPods כדי ליצור את Podfile
ולהכין את הפרויקט לשימוש עם Google Cast SDK.
דוגמה להוספת CocoaPod של google-cast-sdk
ל-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, אבל לא כולל אותה.
הגדרה ידנית
ההוראות הבאות מתייחסות להוספת Cast iOS SDK לפרויקט בלי להשתמש ב-CocoaPods:
הורדות
אחרי הורדת הספרייה המתאימה שמפורטת בהמשך, פועלים לפי שלבי ההגדרה כדי להוסיף את המסגרת לפרויקט.
ספריות של Cast iOS Sender SDK 4.8.3:
שלבי ההגדרה
כדי להתקין את הספרייה:
- מורידים את ה-SDK המתאים לפרויקט ומחלצים אותו.
- מגדירים את הספרייה הדינמית GoogleCastSDK:
-
גוררים את הקובץ
.xcframework
ללא הארכיון אל הפרויקט הראשי בחלון הניווט של הפרויקט ב-Xcode (לא לפרויקט Pods, אם יש לכם כזה). מסמנים את האפשרות 'העתקת כל הפריטים לפי הצורך' ומוסיפים את הפריטים לכל היעדים. -
ביעד Xcode, בכרטיסייה
General
, בוחרים באפשרותEmbed and Sign
עבורGoogleCast.xcframework
.
אם מגדירים את הספרייה הסטטית, צריך לבצע את השלבים הבאים בנוסף לשלבים הקודמים:
- מגדירים את ספריית Protobuf בגרסה מינימלית של v3.13.
- אם בפרויקט שלכם נעשה שימוש ב-CocoaPods:
-
פותחים את
Podfile
ומסירים אתgoogle-cast-sdk
אם הוא מופיע:pod 'google-cast-sdk'
-
מוסיפים את הספרייה
Protobuf
אם היא לא קיימת:pod 'Protobuf', '3.13'
-
מריצים את
pod install
בתיקיית הבסיס של הפרויקט. - אם אתם לא משתמשים ב-CocoaPods בפרויקט:
-
מסירים את הגרסה הנוכחית של
GoogleCastSDK
, אם היא קיימת. - מוסיפים את ספריית Protobuf בגרסה 3.13 ואילך, לפי ההוראות שמפורטות במאגר Protobuf ב-GitHub.
-
בפרויקט Xcode, מוסיפים את הדגלים
-ObjC -lc++
לקטע Build Settings > Other Linker Flags. -
מאתרים את התיקייה Resources בספרייה שחילצתם וגוררים את
GoogleCastCoreResources.bundle
,GoogleCastUIResources.bundle
ו-MaterialDialogs.bundle
אל הפרויקט לצדGoogleCast.xcframework
שהוספתם קודם. מסמנים את האפשרות 'העתקת כל הפריטים לפי הצורך' ומוסיפים את הקוד לכל היעד.
הגדרת Mac Catalyst
באפליקציות שתומכות ב-Mac Catalyst, צריך להשתמש בספרייה הדינמית של Cast SDK. פועלים לפי תהליך ההגדרה הידנית כדי להוסיף את המסגרת לפרויקט. לאחר מכן, מחריגים באופן מותנה את Cast SDK מהיעד ל-Mac, כפי שמתואר במסמכי התיעוד של Apple. ספריות סטטיות מקובצות מראש לארכיטקטורה של iOS, וכתוצאה מכך מתרחשת שגיאה ב-linker במהלך ה-build ל-Mac.