iOS के लिए, कास्ट ऐप्लिकेशन फ़्रेमवर्क (सीएएफ़) के साथ डेवलप करने के लिए सेटअप

कास्ट फ़्रेमवर्क, iOS 13 और उसके बाद के वर्शन पर काम करता है. यह स्टैटिक और डाइनैमिक, दोनों तरह के फ़्रेमवर्क में उपलब्ध होता है.

सभी क्लास और तरीकों की जानकारी के लिए, Google Cast iOS API का संदर्भ देखें.

Xcode का सेटअप

iOS 14

  1. अपने प्रोजेक्ट में Cast iOS SDK 4.8.0 जोड़ें

    अगर CocoaPods का इस्तेमाल किया जा रहा है, तो अपने प्रोजेक्ट में 4.8.0 SDK टूल जोड़ने के लिए, pod update का इस्तेमाल करें.

    अगर ऐसा नहीं है, तो SDK टूल को मैन्युअल तौर पर डालें.

  2. अपने Info.plist में NSBonjourServices जोड़ें

    अपने Info.plist में NSBonjourServices तय करें, ताकि iOS 14 पर लोकल नेटवर्क खोजा जा सके.

    आपको _googlecast._tcp और _<your-app-id>._googlecast._tcp, दोनों को जोड़ना होगा. इससे डिवाइस खोजे जाने की सुविधा ठीक से काम कर पाएगी.

    appID आपका रिसीवर आईडी है. यह वही आईडी है जिसे आपके GCKDiscoveryCriteria में तय किया गया है.

    उदाहरण के तौर पर, NSBonjourServices की परिभाषा को अपडेट करें और "ABCD1234" की जगह अपना appID डालें.

    <key>NSBonjourServices</key>
    <array>
      <string>_googlecast._tcp</string>
      <string>_ABCD1234._googlecast._tcp</string>
    </array>
  3. Add NSLocalNetworkUsageDescription to your Info.plist

    We strongly recommend that you customize the message shown in the Local Network prompt by adding an app-specific permission string in your app's Info.plist file for the NSLocalNetworkUsageDescription such as to describe Cast discovery and other discovery services, like DIAL.

    <key>NSLocalNetworkUsageDescription</key>
    <string>${PRODUCT_NAME} uses the local network to discover Cast-enabled devices on your WiFi
    network.</string>

    This message will appear as part of the iOS Local Network Access dialog as shown in the mock.

    Cast Local Network Access permissions dialog image
  4. Re-release your app to the Apple App Store

    We recommend you also re-release your app using 4.8.0 as soon as possible.

iOS 13

iOS 12

Ensure that the Access WiFi Information switch in the Capabilities section of the target is set to "On".

Additionally, your provisioning profile will need to support the Access WiFi Information capability. This can be added in the Apple Developer Portal.

CocoaPods setup

The recommended way of integrating Google Cast is using CocoaPods. CocoaPods is supported for both the Universal Framework and XCFramework.

For a Universal Framework integration, use the google-cast-sdk and google-cast-sdk-no-bluetooth CocoaPods.

For an XCFramework integration, use the google-cast-sdk-xcframework and google-cast-sdk-no-bluetooth-xcframework CocoaPods.

To get started, follow the getting started guide.

Once CocoaPods is set up, follow the using CocoaPods guide to get your Podfile created and your project ready to use with the Google Cast SDK.

Here's an example of how to add the google-cast-sdk CocoaPod to your Podfile:

use_frameworks!

platform :ios, '13.0'

def target_pods
  pod 'google-cast-sdk'
end

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

Podfile में google-cast-sdk-no-bluetooth CocoaPod को जोड़ने के तरीके का उदाहरण यहां दिया गया है:

use_frameworks!

platform :ios, '13.0'

def target_pods
  pod 'google-cast-sdk-no-bluetooth'
end

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

अपने प्रोजेक्ट के लिए, आपको अपने पॉड की रेंज तय करनी चाहिए, ताकि अनचाहे बदलावों से बचा जा सके. इस बारे में podfile गाइड में बताया गया है.

इस स्निपेट में, वर्शन 4.8.0 और अगले मेजर वर्शन (major.minor.patch) तक के वर्शन की अनुमति है:

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

उदाहरण के लिए, '~> 1.6.7' में 1.6.7 से लेकर उसके बाद के वर्शन तक के सभी वर्शन शामिल होंगे. हालांकि, इसमें 2.0.0 वर्शन शामिल नहीं होगा.

मैन्युअल सेटअप

नीचे दिए गए निर्देशों में CocoaPods का इस्तेमाल किए बिना, अपने प्रोजेक्ट में Cast iOS SDK टूल जोड़ने का तरीका बताया गया है:

डाउनलोड किया गया कॉन्टेंट

नीचे दी गई लाइब्रेरी डाउनलोड करने के बाद, अपने प्रोजेक्ट में फ़्रेमवर्क जोड़ने के लिए सेटअप करने के तरीके का पालन करें. XCFrameworks के लिए सेटअप की ज़रूरी शर्तें, पुराने यूनिवर्सल फ़्रेमवर्क की तरह ही हैं.

यूनिवर्सल फ़्रेमवर्क

कास्ट iOS सेंडर SDK 4.8.0 लाइब्रेरी कास्ट करने के लिए:

ब्लूटूथ इस्तेमाल करने पर स्टैटिक ब्लूटूथ के बिना स्टैटिक

ब्लूटूथ के साथ डाइनैमिक ब्लूटूथ के बिना डाइनैमिक

XCFramework

Cast iOS SDK टूल, XCFrameworks के साथ काम करता है. इससे, Apple सिलिकॉन वाले Mac कंप्यूटर पर डेवलपमेंट और iOS सिम्युलेटर का इस्तेमाल करके डीबग किया जा सकता है.

कास्ट करें iOS Sender SDK XCFramework 4.8.0 लाइब्रेरी:

ब्लूटूथ के साथ स्टैटिक XCFramework ब्लूटूथ के बिना स्टैटिक XCFramework

ब्लूटूथ के साथ डाइनैमिक XCFramework ब्लूटूथ के बिना डाइनैमिक XCFramework

सेटअप का तरीका

किसी एक स्टैटिक लाइब्रेरी को इंस्टॉल करने के लिए:

  1. अपने प्रोजेक्ट के लिए सही स्टैटिक SDK टूल डाउनलोड करें और उसे अनज़िप करें.
  2. कम से कम वर्शन v3.13 में Protobuf लाइब्रेरी सेट अप करें.
    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 GitHub रेपो में दिए गए निर्देशों का पालन करके, Protobuf लाइब्रेरी v3.13 या उसके बाद का वर्शन जोड़ें.
  3. Xcode प्रोजेक्ट नेविगेटर में, अनज़िप किए गए .framework या .xcframework को अपने मुख्य प्रोजेक्ट में खींचें और छोड़ें (अगर आपके पास Pods प्रोजेक्ट है, तो उसमें नहीं). 'अगर ज़रूरी हो, तो सभी आइटम कॉपी करें' पर सही का निशान लगाएं और सभी टारगेट में जोड़ें.
  4. अपने Xcode प्रोजेक्ट में, बिल्ड सेटिंग > लिंकर के अन्य फ़्लैग में -ObjC -lc++ फ़्लैग जोड़ें.
  5. अपने प्रोजेक्ट में GoogleCast.framework या GoogleCast.xcframework पर राइट क्लिक करें और 'Find in Finder' को चुनें.
  6. अपने प्रोजेक्ट में, पहले जोड़े गए GoogleCast.framework या GoogleCast.xcframework के बगल में मौजूद GoogleCastCoreResources.bundle और GoogleCastUIResources.bundle को खींचें और 'ज़रूरी होने पर सभी आइटम कॉपी करें' पर सही का निशान लगाएं और सभी टारगेट में जोड़ें.

कोई डाइनैमिक लाइब्रेरी इंस्टॉल करने के लिए:

  1. अपने प्रोजेक्ट के लिए सही डाइनैमिक SDK डाउनलोड करें और उसे अनज़िप करें.
  2. डाइनैमिक GoogleCastSDK लाइब्रेरी सेट अप करें:
    1. अगर आपके प्रोजेक्ट में CocoaPods का इस्तेमाल किया जाता है, तो:
      1. अपना Podfile खोलें और इन्हें हटाएं:
        pod 'google-cast-sdk'
      2. pod install को अपने प्रोजेक्ट के रूट फ़ोल्डर में चलाएं.
    2. अगर आपके प्रोजेक्ट में CocoaPods का इस्तेमाल नहीं किया जा रहा है, तो मौजूदा Google Cast लाइब्रेरी को हटाएं.
  3. Xcode प्रोजेक्ट नेविगेटर में, अनज़िप किए गए .framework या .xcframework को अपने मुख्य प्रोजेक्ट में खींचें और छोड़ें (अगर आपके पास Pods प्रोजेक्ट है, तो उसमें नहीं). 'अगर ज़रूरी हो, तो सभी आइटम कॉपी करें' पर सही का निशान लगाएं और सभी टारगेट में जोड़ें.
  4. अपने Xcode टारगेट में General टैब में, GoogleCast.framework के लिए Embed and Sign या GoogleCast.xcframework चुनें.

Mac Catalyst सेटअप

Mac Catalyst के साथ काम करने वाले ऐप्लिकेशन के लिए, Cast SDK की डाइनैमिक लाइब्रेरी का इस्तेमाल करें. अपने प्रोजेक्ट में फ़्रेमवर्क जोड़ने के लिए, मैन्युअल सेटअप प्रोसेस का पालन करें. इसके बाद, Apple दस्तावेज़ में बताए गए तरीके से Mac टारगेट से कास्ट SDK टूल को बाहर रखें. स्टैटिक लाइब्रेरी, iOS आर्किटेक्चर के लिए पहले से इकट्ठा की जाती हैं. इससे, Mac टारगेट के हिसाब से लिंकर बनाते समय गड़बड़ी होती है.

ऐप्लिकेशन को App Store पर पब्लिश करना

अपने ऐप्लिकेशन को App Store पर पब्लिश करने से पहले, आपको ऐप्लिकेशन बंडल से इस्तेमाल नहीं किए गए आर्किटेक्चर को हटाने के लिए, शेल स्क्रिप्ट strip_unused_archs.sh चलाना होगा. यह स्क्रिप्ट, iOS के लिए कास्ट SDK टूल में है.