Git Product home page Git Product logo

casthellovideo-ios's Introduction

CastHelloVideo-ios

This Google Cast demo app shows how an iOS sender app can cast a Video. For simplicity this app is not fully compliant with the UX Checklist.

The project contains targets for both Objective-C and Swift.

List of reference apps and tutorials

Dependencies

Setup Instructions

  1. Get a Google Cast device and get it set up for development: https://developers.google.com/cast/docs/developers#setup_for_development.
  2. [Optional] Register an application on the Developers Console http://cast.google.com/publish. You will get an App ID when you finish registering your application. This project uses a published Application ID that can be used to run the app without using your own ID but if you need to do any console debugging, you would need to have your own ID.
    • If you use DRM, you will need to use your own App ID.
  3. Setup the project dependencies in Xcode using Cocoapods, installing the tool if necessary: See this guide.
  4. In the root folder, run pod repo update and then pod install.
  5. Open the .xcworkspace file rather the the xcproject to ensure you have the pod dependencies.
  6. The AppDelegate.swift/AppDelegate.m includes a published receiver App ID so the project can be built and run without a need to register an ID.
    • Update this value with your own App ID to use your own receiver to debug and use DRM.
  7. The Info.plist lists the published receiver App ID for NSBonjourServices which is used to discover Cast devices.
    • Update this value with your own App ID if you are using a custom receiver.
  8. For additional setup steps, see the Xcode setup guide.

Documentation

References

How to report bugs

Contributions

Please read and follow the steps in the CONTRIBUTING.md.

License

See LICENSE.

Terms

Your use of this sample is subject to, and by using or downloading the sample files you agree to comply with, the Google APIs Terms of Service and the Google Cast SDK Additional Developer Terms of Service.

casthellovideo-ios's People

Contributors

aaroncrespo avatar c0d3base avatar cassierecher avatar gomez-andres avatar ianbarber avatar javaclimber avatar jtromo avatar naokigoogle avatar norulesjustfeels avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

casthellovideo-ios's Issues

Cast custom audio or subtitles

I have troubles with casting custom audio for video and subtitles. I've make fork with minimal changes. Everything looks like subtitles and audio working, but on TV no audio and captions.

NOTICE: Changes to Scanning with Custom Device Pickers in 4.5.0

If you built a custom device picker in your app, this is a known issue that can happen when upgrading to v4.5.0 of the Cast SDK. In version 4.4.8 of the Cast SDK and earlier, device scanning was automatic. Beginning in version 4.5.0, you will need to explicitly call the startDiscovery method on the GCKDiscoveryManager class to initiate device discovery.

The reason for this change is because the Local Network Access (LNA) permissions prompt will appear after the app has scanned for the first time. This could result in permissions dialogs appearing at unexpected places in your app.

Developers who build a custom device picker for their app will be expected to provide an one-time interstitial prior to initiating device scanning for the first time in iOS 14.

Cannot detect any chromecast devices

Hi,
I'm having trouble getting the HelloVideoGoogleCast app to work. It doesn't detect any chromecast devices on my network. Any help would be appreciated. Here are logs from the app:

2016-01-05 14:38:58.555 HelloVideoGoogleCastSwift[241:9290] GoogleCast framework version 2.10.1.4691
-[GCKDeviceScanner startScan] - reachability start monitoring
-[GCKNetworkReachability startMonitoring] - startMonitoring
-[GCKNetworkReachability startMonitoring] - requesting current status
-[GCKNetworkReachability updateStatusFromFlags:] - updateStatusFromFlags
-[GCKNetworkReachability updateStatusFromFlags:] - statusChanged=1, _currentStatus=1, _currentBSSID=84:db:2f:43:e9:7b
-[GCKNetworkReachability updateStatusFromFlags:] - status or BSSID has changed
-[GCKDeviceScanner networkReachabilityStatusDidChange:networkDidChange:] - networkReachabilityStatusDidChange:1 networkDidChange:1
-[GCKDeviceScanner purgeAllOnlineDevices] - purgeAllOnlineDevices
-[GCKDeviceScanner networkReachabilityStatusDidChange:networkDidChange:] - Restarting scan after WiFi acquired or network changed
+[NSMutableDictionary(GCKAdditions) gck_loadFromCacheWithName:] - Device cache file file:///var/mobile/Containers/Data/Application/039829F1-019C-40B4-98B1-B09B60D5D76A/Library/Caches/gck_device_cache_v1.plist doesn't exist.
-[GCKDeviceScanner startNetServiceScan] - startNetServiceScan
-[GCKDeviceScanner startNetServiceScan] - querying for subtype: _CC1AD845
-[GCKDeviceScanner netServiceBrowser:didFindService:moreComing:] - found Chromecast9749,(null)
-[GCKDeviceScanner startResolveForEntry:] - resolving Chromecast9749
-[GCKDeviceScanner netServiceDidResolveAddress:] - resolved address for 'Chromecast9749'
-[GCKDeviceScanner updateDeviceEntryForService:] - updateDeviceEntryForService: 'Chromecast9749'
-[GCKDeviceScanner maybePublishDevice:] - maybePublishDevice: 0x170300900:GCKDevice 'Chromecast9749' (4bf63f7f90e90a176b046920b9bbc966)
-[GCKDeviceScanner maybePublishDevice:] - [A] starting legacy filtering for 0x170300900:GCKDevice 'Chromecast9749' (4bf63f7f90e90a176b046920b9bbc966)
-[GCKDeviceScanner startFilteringDevice:] - starting filter for device: 0x170300900:GCKDevice 'Chromecast9749' (4bf63f7f90e90a176b046920b9bbc966) with filter CC1AD845 - attempt 0
-[GCKClientCertificate init] - Failed to query KeyChain for idenities err=-25300
-[GCKDeviceManager connectInternalUnchecked] - connectInternalUnchecked to Chromecast9749
-[GCKClearcutLogger scanLogCache] - enqueuing request for log file: /var/mobile/Containers/Data/Application/039829F1-019C-40B4-98B1-B09B60D5D76A/Library/Caches/GCKClearcutLogger/67/2016.01.05.14.38.48.016
-[GCKEventLogger logDeviceControllerConnecting:sessionID:] - LOG EVENT: hashedDeviceID=-8180151354301140754, sessionID=266192783
-[GCKClearcutLogger logEvent:fromSource:] - logging an event from source: 67
-[GCKCastSecureSocket connectToHost:port:withTimeout:] - leaving connectToHost
-[GCKEventLogger logFilterConnectingToDevice:sessionID:filterID:] - LOG EVENT: hashedDeviceID=-8180151354301140754, sessionID=266192578
-[GCKClearcutLogger logEvent:fromSource:] - logging an event from source: 67
__41-[GCKClearcutLogger logEvent:fromSource:]_block_invoke - opening new log file in: /var/mobile/Containers/Data/Application/039829F1-019C-40B4-98B1-B09B60D5D76A/Library/Caches/GCKClearcutLogger/67/2016.01.05.14.38.58.838
-[GCKBLEDeviceVisibilityChecker centralManagerDidUpdateState:] - State: Powered On
-[GCKClearcutLogWriter open] - opened log file: /var/mobile/Containers/Data/Application/039829F1-019C-40B4-98B1-B09B60D5D76A/Library/Caches/GCKClearcutLogger/67/2016.01.05.14.38.58.838
-[GCKCastSecureSocket stream:handleEvent:] - handle read stream event: 1
-[GCKCastSecureSocket stream:handleEvent:] - handshaking=1
-[GCKCastSecureSocket stream:handleEvent:] - handle write stream event: 1
-[GCKCastSecureSocket stream:handleEvent:] - handshaking=1
-[GCKCastSecureSocket stream:handleEvent:] - handle write stream event: 4
-[GCKCastSecureSocket stream:handleEvent:] - handshaking=1
-[GCKCastSecureSocket stream:handleEvent:] - handle read stream event: 2
-[GCKCastSecureSocket stream:handleEvent:] - handshaking=1
-[GCKCastSecureSocket stream:handleEvent:] - handle read stream event: 2
-[GCKCastSecureSocket stream:handleEvent:] - handshaking=0
-[GCKCastSecureSocket stream:handleEvent:] - handle read stream event: 2
-[GCKCastSecureSocket stream:handleEvent:] - handshaking=0
-[GCKCastSecureSocket stream:handleEvent:] - handle read stream event: 2
-[GCKCastSecureSocket stream:handleEvent:] - handshaking=0
-[GCKDeviceAuthChannel didReceiveBinaryMessage:] - Genuine Google device didDeviceAuthenticated=YES
-[GCKDeviceManager deviceAuthChannelDidAuthenticate:] - Authentic device, connecting receiver channel
-[GCKDeviceManager connectToReceiverChannel] - connectToReceiverChannel; isReconnecting is 0
-[GCKCastChannel sendTextMessage:toDestinationID:] - sending message on urn:x-cast:com.google.cast.tp.connection: {"userAgent":"iOS CastSDK,2.10.1,iPhone,iPhone OS,8.4","type":"CONNECT","origin":{"package":"com.google.cast.DeviceFilter"},"senderInfo":{"platform":2,"systemVersion":"8.4","sdkType":1,"model":"iPhone","connectionType":1,"version":"2.10.1"}}
-[GCKEventLogger logDeviceControllerConnected:sessionID:] - LOG EVENT: hashedDeviceID=-8180151354301140754, sessionID=266192783
-[GCKClearcutLogger logEvent:fromSource:] - logging an event from source: 67
-[GCKDeviceFilter deviceManagerDidConnect:] - deviceManagerDidConnect
-[GCKEventLogger logFilterConnectedToDevice:sessionID:filterID:] - LOG EVENT: hashedDeviceID=-8180151354301140754, sessionID=266192578
-[GCKClearcutLogger logEvent:fromSource:] - logging an event from source: 67
-[GCKCastChannel sendTextMessage:toDestinationID:] - sending message on urn:x-cast:com.google.cast.setup: {"type":"eureka_info","request_id":1,"data":{"params":["version","name","device_info.ssdp_udn","build_info.cast_build_revision","net.ip_address","net.online","wifi.ssid","wifi.signal_level","wifi.noise_level"]}}
-[GCKCastChannel sendTextMessage:toDestinationID:] - sending message on urn:x-cast:com.google.cast.receiver: {"type":"GET_STATUS","requestId":2}
-[GCKProximityInfoChannel initiateGetProximityInfo] - initiateGetProximityInfo
-[GCKCastChannel sendTextMessage:toDestinationID:] - sending message on urn:x-cast:com.google.cast.proximity: {"type":"GET_PROXIMITY_INFO","requestId":3}
-[GCKCastSecureSocket stream:handleEvent:] - handle read stream event: 2
-[GCKCastSecureSocket stream:handleEvent:] - handshaking=0
-[GCKCastSecureSocket stream:handleEvent:] - handle read stream event: 2
-[GCKCastSecureSocket stream:handleEvent:] - handshaking=0
-[GCKReceiverControlChannel didReceiveTextMessage:] - received: {"requestId":2,"status":{"applications":[{"appId":"00000000-0000-0000-0000-000000000000","displayName":"IMAX","sessionId":"7C0A5CCD-6815-5A3E-617F-E729718B9A5F","statusText":"Chromecast Home Screen"}],"volume":{"level":1.0,"muted":false}},"type":"RECEIVER_STATUS"}
-[GCKDeviceManager receiverControlChannel:didReceiveReceiverStatus:applicationStatus:requestID:] - Received device status with requestID=2
-[GCKDeviceManager receiverControlChannel:didReceiveReceiverStatus:applicationStatus:requestID:] - checking if app is stopped
-[GCKDeviceManager receiverControlChannel:didReceiveReceiverStatus:applicationStatus:requestID:] - checking receiver status for changes; status was requested? 1
-[GCKDeviceManager receiverControlChannel:didReceiveReceiverStatus:applicationStatus:requestID:] - status text has changed; calling delegate
-[GCKDeviceManager receiverControlChannel:didReceiveReceiverStatus:applicationStatus:requestID:] - volume has changed; calling delegate
-[GCKDeviceManager receiverControlChannel:didReceiveReceiverStatus:applicationStatus:requestID:] - active input status has changed; calling delegate
-[GCKDeviceManager receiverControlChannel:didReceiveReceiverStatus:applicationStatus:requestID:] - standby status has changed; calling delegate
-[GCKDeviceFilter deviceManagerDidUpdateStatus:] - deviceManagerDidUpdateStatus for Chromecast9749
-[GCKEventLogger logFilterReceivedStatusForDevice:sessionID:filterID:] - LOG EVENT: hashedDeviceID=-8180151354301140754, sessionID=266192578
-[GCKClearcutLogger logEvent:fromSource:] - logging an event from source: 67
-[GCKDeviceFilter deviceManagerDidUpdateStatus:] - requesting availability of CC1AD845
-[GCKCastChannel sendTextMessage:toDestinationID:] - sending message on urn:x-cast:com.google.cast.receiver: {"type":"GET_APP_AVAILABILITY","requestId":4,"appId":["CC1AD845"]}
-[GCKEventLogger logFilterRequestedAppAvailabilityForDevice:sessionID:filterID:] - LOG EVENT: hashedDeviceID=-8180151354301140754, sessionID=266192578
-[GCKClearcutLogger logEvent:fromSource:] - logging an event from source: 67
-[GCKCastSecureSocket stream:handleEvent:] - handle read stream event: 2
-[GCKCastSecureSocket stream:handleEvent:] - handshaking=0
-[GCKReceiverControlChannel didReceiveTextMessage:] - received: {"availability":{"CC1AD845":"APP_AVAILABLE"},"requestId":4,"responseType":"GET_APP_AVAILABILITY"}
-[GCKDeviceFilter deviceManager:didReceiveAppAvailability:] - didReceiveAppAvailability: {
CC1AD845 = 1;
} for Chromecast9749
-[GCKEventLogger logFilterReceivedAppAvailabilityForDevice:sessionID:filterID:] - LOG EVENT: hashedDeviceID=-8180151354301140754, sessionID=266192578
-[GCKClearcutLogger logEvent:fromSource:] - logging an event from source: 67
-[GCKDeviceFilter deviceManager:didReceiveAppAvailability:] - available? 1
-[GCKDeviceScanner mdnsDiscoveryTimeoutTimerDidFire:] - mdnsDiscoveryTimeoutTimerDidFire

Media failed to load

  • I download this repo
  • Update the app id in Bounjour Service and kReceiverAppID
  • Run the project and I get this errors

Also the "CastVideos-ios" project seems working fine but this "CastHelloVideo-ios" project is not working as expected.

2021-03-16 04:23:36.417965+0800 CastHelloVideo-swift[579:46484] GoogleCast framework version 4.5.3.16.01
GCKNNetworkUtils.m:223: +[GCKNNetworkUtils getTwoLowerBytesFromNetworkAddress:] - Invalid network address
2021-03-16 04:23:47.743483+0800 CastHelloVideo-swift[579:46484] [TableView] Warning once only: UITableView was told to layout its visible cells and other contents without being in the view hierarchy (the table view or one of its superviews has not been added to a window). This may cause bugs by forcing views inside the table view to load and perform layout without accurate information (e.g. table view bounds, trait collection, layout margins, safe area insets, etc), and will also cause unnecessary performance overhead due to extra layout passes. Make a symbolic breakpoint at UITableViewAlertForLayoutOutsideViewHierarchy to catch this in the debugger and see what caused this to occur, so you can avoid this action altogether if possible, or defer it until the table view has been added to a window. Table view: <UITableView: 0x1010bb200; frame = (0 0; 1024 768); clipsToBounds = YES; opaque = NO; autoresize = RM+BM; tag = 9992; gestureRecognizers = <NSArray: 0x2819a4f00>; layer = <CALayer: 0x28174c560>; contentOffset: {0, 0}; contentSize: {1024, 73}; adjustedContentInset: {0, 0, 0, 0}; dataSource: <GCKUIDeviceConnectionViewController: 0x1010a3a00>>
2021-03-16 04:23:47.745887+0800 CastHelloVideo-swift[579:46484] [Assert] button text attributes only respected for UIControlStateNormal, UIControlStateHighlighted, UIControlStateDisabled and UIControlStateFocused. state = 4 is interpreted as UIControlStateHighlighted.
2021-03-16 04:23:47.746141+0800 CastHelloVideo-swift[579:46484] [Assert] button text attributes only respected for UIControlStateNormal, UIControlStateHighlighted, UIControlStateDisabled and UIControlStateFocused. state = 4 is interpreted as UIControlStateHighlighted.
2021-03-16 04:23:48.305996+0800 CastHelloVideo-swift[579:46484] [Assert] button text attributes only respected for UIControlStateNormal, UIControlStateHighlighted, UIControlStateDisabled and UIControlStateFocused. state = 4 is interpreted as UIControlStateHighlighted.
2021-03-16 04:23:48.306542+0800 CastHelloVideo-swift[579:46484] [Assert] button text attributes only respected for UIControlStateNormal, UIControlStateHighlighted, UIControlStateDisabled and UIControlStateFocused. state = 4 is interpreted as UIControlStateHighlighted.
GCKNNetworkUtils.m:223: +[GCKNNetworkUtils getTwoLowerBytesFromNetworkAddress:] - Invalid network address
2021-03-16 04:23:49.136296+0800 CastHelloVideo-swift[579:46484] [Assert] button text attributes only respected for UIControlStateNormal, UIControlStateHighlighted, UIControlStateDisabled and UIControlStateFocused. state = 4 is interpreted as UIControlStateHighlighted.
2021-03-16 04:23:49.136608+0800 CastHelloVideo-swift[579:46484] [Assert] button text attributes only respected for UIControlStateNormal, UIControlStateHighlighted, UIControlStateDisabled and UIControlStateFocused. state = 4 is interpreted as UIControlStateHighlighted.
GCKDeviceAuthChannel.m:240: -[GCKDeviceAuthChannel canAuthenticateBinaryMessage:checkDeviceCapabilities:] - Received invalid response, auth message has invalid nonce value
GCKCastDeviceConnector.m:926: -[GCKCastDeviceConnector deviceAuthChannel:didFailToFetchRelayAccessTokenWithError:] - Failed to generate a relay access token.
2021-03-16 04:23:51.145521+0800 CastHelloVideo-swift[579:46484] [Assert] button text attributes only respected for UIControlStateNormal, UIControlStateHighlighted, UIControlStateDisabled and UIControlStateFocused. state = 4 is interpreted as UIControlStateHighlighted.
2021-03-16 04:23:51.145919+0800 CastHelloVideo-swift[579:46484] [Assert] button text attributes only respected for UIControlStateNormal, UIControlStateHighlighted, UIControlStateDisabled and UIControlStateFocused. state = 4 is interpreted as UIControlStateHighlighted.
sessionManager didStartSession: <0x100f5c630: GCKCastSession; device = <0x282c04340: GCKDevice; category = com.google.cast.CastDevice, ID = f5810fd7f8d04caa83934139913cdd9f, instance = (null), name = 'EVA-L19-8', address = 192.168.1.8:8009> rawID = f5810fd7f8d04caa83934139913cdd9f, sessionID = 59f22752-85cc-11eb-8000-add45aa10f00, sessionType = MediaSession, sessionState = Active>
Load Video
request 7 didFailWithError Error Domain=com.google.cast.GCKError Code=30 "Media failed to load" UserInfo={NSLocalizedDescription=Media failed to load}
GCKMediaControlChannel.m:1332: -[GCKMediaControlChannel didReceiveTextMessage:] - Received unexpected error: INVALID_REQUEST
GCKMediaQueue.m:546: -[GCKMediaQueue request:didFailWithError:] - error fetching queue item IDs: Error Domain=com.google.cast.GCKError Code=4 "Invalid request" UserInfo={gck_error_reason=INVALID_MEDIA_SESSION_ID, NSLocalizedDescription=Invalid request, gck_custom_data=INVALID_MEDIA_SESSION_ID}
Load Video
request 12 didFailWithError Error Domain=com.google.cast.GCKError Code=30 "Media failed to load" UserInfo={NSLocalizedDescription=Media failed to load}
GCKMediaControlChannel.m:1332: -[GCKMediaControlChannel didReceiveTextMessage:] - Received unexpected error: INVALID_REQUEST
GCKMediaQueue.m:546: -[GCKMediaQueue request:didFailWithError:] - error fetching queue item IDs: Error Domain=com.google.cast.GCKError Code=4 "Invalid request" UserInfo={gck_error_reason=INVALID_MEDIA_SESSION_ID, NSLocalizedDescription=Invalid request, gck_custom_data=INVALID_MEDIA_SESSION_ID}
2021-03-16 04:28:50.478516+0800 CastHelloVideo-swift[579:46484] [Assert] button text attributes only respected for UIControlStateNormal, UIControlStateHighlighted, UIControlStateDisabled and UIControlStateFocused. state = 4 is interpreted as UIControlStateHighlighted.
2021-03-16 04:28:50.479412+0800 CastHelloVideo-swift[579:46484] [Assert] button text attributes only respected for UIControlStateNormal, UIControlStateHighlighted, UIControlStateDisabled and UIControlStateFocused. state = 4 is interpreted as UIControlStateHighlighted.
sessionManager didEndSession: <0x100f5c630: GCKCastSession; device = <0x282c04340: GCKDevice; category = com.google.cast.CastDevice, ID = f5810fd7f8d04caa83934139913cdd9f, instance = (null), name = 'EVA-L19-8', address = 192.168.1.8:8009> rawID = f5810fd7f8d04caa83934139913cdd9f, sessionID = 59f22752-85cc-11eb-8000-add45aa10f00, sessionType = MediaSession, sessionState = None>

Guest Mode Not Working

Hi there,

I've tried to used the sample app (GoogleCast framework version 4.6.1.19.01) to cast to a Chromecast device (gen 2) with the Guest Mode.

The sample app can discover the nearby device, but it doesn't work after inputing PINs and outputs some error message from Xcode's console:
Screen Shot 2021-11-08 at 13 16 15

Occasionally the googlecast sdk returns a error html message in this scenario:
Error.txt

The steps to reproduce it is:

  1. Connect the chromecast device and the iOS device to different networks
  2. Open the app and touch the casting button
  3. Select "Nearby Device" and enter pins

Do you have any idea why this is happening, and how can we fix it?

Cheers,

Rick

Mirroring/showing screen/viewcontroller only rather playing video in iOS CastSDK

I was looking for a solution to mirroring my iOS app screen rather playing video from app. My intension is to show the app screen in larger screen while users use our fitness app. I can perform it from iOS AirPlay(shares whole iOS device to apple TV or supported TV screen) but i want it from iOS Cast SDK too.

I already have bought a CAST DEVELOPER ACCOUNT(5USD) but having no proper way to do it yet.

My queries are :

  • Is it possible with CAST IOS SDK ?
  • Which API should be used?
  • Any proper sample to screen mirror/app screen sharing?

Any clue/workaround would be a great help.

Update: If CAST iOS SDK does not provide screen mirroring(iPhone to airplay supported tv/smart TV ), what should be the best way to implement this? Any hope with letsview.com or BJcast SDK or anything?

Thanks in advance guys.

README.md is outdated

README.md is outdated since 06f5c60 ( 06f5c60 ).

This part should be updated :
"In HGCVViewController.m, replace @"YOUR_APP_ID_HERE" with your app identifier from the Google Cast Developer Console. When you are done, it will look something like:
static NSString *const kReceiverAppID = @"1234ABCD";"

Sample App Incompatible with new 3.5.3 SDK

Issue

Unable to detect any Chromecast devices using the new 3.5.3 SDK (using the simulator).

Expected Behavior

Cast icon visible in the navigation bar.

Actual Behavior

Cast icon not visible in the navigation bar.

Steps to Repro

Modify podfile to delete the '>=3.2.0' designator
Run pod install

Various print statements in console to verify no devices detected

(lldb) po CastController.sharedController.context.castState.rawValue
0


(lldb) po CastController.sharedController.context.discoveryManager.hasDiscoveredDevices
false


(lldb) po CastController.sharedController.context.discoveryManager.discoveryState.rawValue
1


(lldb) po CastController.sharedController.context.discoveryManager.discoveryActive
true

NavigationBar title text color cannot be changed

Please try to change the NavigationBar title text color from black to white with the following code

    let colorAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]

you will see that nothing happens in the device selection controller, I suppose that the framework set the title color to override the appearance. Tested on iPhone with iOS 15.2.1.

Errors on Pod Install

!] Invalid 'Podfile' file: [!] The specification of 'link_with' in the Podfile is now unsupported, please use target blocks instead..

I have Cocoapods v1.4.0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.