diff --git a/android/src/main/kotlin/com/gianlucaparadise/flutter_cast_framework/cast/DefaultCastOptionsProvider.kt b/android/src/main/kotlin/com/gianlucaparadise/flutter_cast_framework/cast/DefaultCastOptionsProvider.kt
index aad02ec..05469e2 100644
--- a/android/src/main/kotlin/com/gianlucaparadise/flutter_cast_framework/cast/DefaultCastOptionsProvider.kt
+++ b/android/src/main/kotlin/com/gianlucaparadise/flutter_cast_framework/cast/DefaultCastOptionsProvider.kt
@@ -4,7 +4,7 @@ import android.content.Context
import com.google.android.gms.cast.framework.CastOptions
import com.google.android.gms.cast.framework.OptionsProvider
import com.google.android.gms.cast.framework.SessionProvider
-
+import com.google.android.gms.cast.CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID
/**
* This is here to be used as an example
@@ -14,7 +14,7 @@ class DefaultCastOptionsProvider : OptionsProvider {
override fun getCastOptions(context: Context): CastOptions {
return CastOptions.Builder()
- .setReceiverApplicationId("4F8B3483")
+ .setReceiverApplicationId(DEFAULT_MEDIA_RECEIVER_APPLICATION_ID)
.build()
}
diff --git a/example/android/app/src/main/kotlin/com/gianlucaparadise/flutter_cast_framework_example/CastOptionsProvider.kt b/example/android/app/src/main/kotlin/com/gianlucaparadise/flutter_cast_framework_example/CastOptionsProvider.kt
index 11ec2a1..2fe7e81 100644
--- a/example/android/app/src/main/kotlin/com/gianlucaparadise/flutter_cast_framework_example/CastOptionsProvider.kt
+++ b/example/android/app/src/main/kotlin/com/gianlucaparadise/flutter_cast_framework_example/CastOptionsProvider.kt
@@ -4,12 +4,12 @@ import android.content.Context
import com.google.android.gms.cast.framework.CastOptions
import com.google.android.gms.cast.framework.OptionsProvider
import com.google.android.gms.cast.framework.SessionProvider
-
+import com.google.android.gms.cast.CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID
class CastOptionsProvider : OptionsProvider {
override fun getCastOptions(context: Context): CastOptions {
return CastOptions.Builder()
- .setReceiverApplicationId("D6760CCD")
+ .setReceiverApplicationId(DEFAULT_MEDIA_RECEIVER_APPLICATION_ID)
.build()
}
diff --git a/example/ios/Podfile b/example/ios/Podfile
index 1e8c3c9..2c068c4 100644
--- a/example/ios/Podfile
+++ b/example/ios/Podfile
@@ -1,5 +1,5 @@
# Uncomment this line to define a global platform for your project
-# platform :ios, '9.0'
+platform :ios, '12.0'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock
index 56648ce..adb6cc1 100644
--- a/example/ios/Podfile.lock
+++ b/example/ios/Podfile.lock
@@ -2,16 +2,8 @@ PODS:
- Flutter (1.0.0)
- flutter_cast_framework (0.0.1):
- Flutter
- - google-cast-sdk-no-bluetooth (~> 4.4.4)
- - google-cast-sdk-no-bluetooth (4.4.8):
- - google-cast-sdk-no-bluetooth/Core (= 4.4.8)
- - GTMSessionFetcher/Core (~> 1.0)
- - Protobuf (~> 3.12)
- - google-cast-sdk-no-bluetooth/Core (4.4.8):
- - GTMSessionFetcher/Core (~> 1.0)
- - Protobuf (~> 3.12)
- - GTMSessionFetcher/Core (1.7.0)
- - Protobuf (3.19.0)
+ - google-cast-sdk-dynamic-xcframework-no-bluetooth
+ - google-cast-sdk-dynamic-xcframework-no-bluetooth (4.7.1)
DEPENDENCIES:
- Flutter (from `Flutter`)
@@ -19,9 +11,7 @@ DEPENDENCIES:
SPEC REPOS:
trunk:
- - google-cast-sdk-no-bluetooth
- - GTMSessionFetcher
- - Protobuf
+ - google-cast-sdk-dynamic-xcframework-no-bluetooth
EXTERNAL SOURCES:
Flutter:
@@ -31,11 +21,9 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
- flutter_cast_framework: 1a7183ed51a5af57cbec987d0c422086b4ac2c52
- google-cast-sdk-no-bluetooth: d5a60530c72b0907fb302d835952b6cb0ba5f128
- GTMSessionFetcher: 43748f93435c2aa068b1cbe39655aaf600652e91
- Protobuf: e9b99dd5da72f665ec503b19191f245a22188b4d
+ flutter_cast_framework: 67e74e23e47c1e44234c1ed8167cfb2077620f8d
+ google-cast-sdk-dynamic-xcframework-no-bluetooth: 1fa9e267df3fd6f8a1c6e3345142ca5286297968
-PODFILE CHECKSUM: aafe91acc616949ddb318b77800a7f51bffa2a4c
+PODFILE CHECKSUM: 4e8f8b2be68aeea4c0d5beb6ff1e79fface1d048
COCOAPODS: 1.11.3
diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj
index a72fe91..4b061fc 100644
--- a/example/ios/Runner.xcodeproj/project.pbxproj
+++ b/example/ios/Runner.xcodeproj/project.pbxproj
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 46;
+ objectVersion = 54;
objects = {
/* Begin PBXBuildFile section */
@@ -153,8 +153,7 @@
97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
- D442A0785939ED7C311A5340 /* [CP] Embed Pods Frameworks */,
- F8453FE49677B54947F70C12 /* [CP] Copy Pods Resources */,
+ 3846A275F5BB3E7363DBA2BE /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
@@ -171,7 +170,7 @@
97C146E61CF9000F007C117D /* Project object */ = {
isa = PBXProject;
attributes = {
- LastUpgradeCheck = 1020;
+ LastUpgradeCheck = 1300;
ORGANIZATIONNAME = "The Chromium Authors";
TargetAttributes = {
97C146ED1CF9000F007C117D = {
@@ -215,8 +214,27 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
+ 3846A275F5BB3E7363DBA2BE /* [CP] Embed Pods Frameworks */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh",
+ "${PODS_XCFRAMEWORKS_BUILD_DIR}/google-cast-sdk-dynamic-xcframework-no-bluetooth/GoogleCast.framework/GoogleCast",
+ );
+ name = "[CP] Embed Pods Frameworks";
+ outputPaths = (
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleCast.framework",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
isa = PBXShellScriptBuildPhase;
+ alwaysOutOfDate = 1;
buildActionMask = 2147483647;
files = (
);
@@ -231,6 +249,7 @@
};
9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase;
+ alwaysOutOfDate = 1;
buildActionMask = 2147483647;
files = (
);
@@ -265,46 +284,6 @@
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
- D442A0785939ED7C311A5340 /* [CP] Embed Pods Frameworks */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh",
- "${BUILT_PRODUCTS_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework",
- "${BUILT_PRODUCTS_DIR}/Protobuf/Protobuf.framework",
- );
- name = "[CP] Embed Pods Frameworks";
- outputPaths = (
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GTMSessionFetcher.framework",
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Protobuf.framework",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
- showEnvVarsInLog = 0;
- };
- F8453FE49677B54947F70C12 /* [CP] Copy Pods Resources */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh",
- "${PODS_ROOT}/google-cast-sdk-no-bluetooth/GoogleCastSDK-ios-4.4.8_static/GoogleCast.framework/GoogleCastCoreResources.bundle",
- "${PODS_ROOT}/google-cast-sdk-no-bluetooth/GoogleCastSDK-ios-4.4.8_static/GoogleCast.framework/GoogleCastUIResources.bundle",
- );
- name = "[CP] Copy Pods Resources";
- outputPaths = (
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleCastCoreResources.bundle",
- "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleCastUIResources.bundle",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
- showEnvVarsInLog = 0;
- };
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@@ -380,7 +359,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
@@ -402,8 +381,11 @@
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
- IPHONEOS_DEPLOYMENT_TARGET = 9.0;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ );
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
@@ -463,7 +445,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@@ -512,7 +494,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
@@ -536,8 +518,11 @@
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
- IPHONEOS_DEPLOYMENT_TARGET = 9.0;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ );
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
@@ -567,8 +552,11 @@
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
- IPHONEOS_DEPLOYMENT_TARGET = 9.0;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ );
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
diff --git a/example/ios/Runner/AppDelegate.swift b/example/ios/Runner/AppDelegate.swift
index 260bd5b..4ce2c80 100644
--- a/example/ios/Runner/AppDelegate.swift
+++ b/example/ios/Runner/AppDelegate.swift
@@ -4,7 +4,7 @@ import GoogleCast
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate, GCKLoggerDelegate {
- let kReceiverAppID = "D6760CCD"
+ let kReceiverAppID = kGCKDefaultMediaReceiverApplicationID
let kDebugLoggingEnabled = true
override func application(
diff --git a/example/ios/Runner/Info.plist b/example/ios/Runner/Info.plist
index 71372ad..f5df24f 100644
--- a/example/ios/Runner/Info.plist
+++ b/example/ios/Runner/Info.plist
@@ -22,6 +22,13 @@
$(FLUTTER_BUILD_NUMBER)
LSRequiresIPhoneOS
+ NSBonjourServices
+
+ _googlecast._tcp
+ _CC1AD845._googlecast._tcp
+
+ NSLocalNetworkUsageDescription
+ ${PRODUCT_NAME} uses the local network to discover Cast-enabled devices on your WiFi network.
UILaunchStoryboardName
LaunchScreen
UIMainStoryboardFile
diff --git a/ios/Classes/HostMediaLoadRequestDataHelper.swift b/ios/Classes/HostMediaLoadRequestDataHelper.swift
index f009292..c6af6d8 100644
--- a/ios/Classes/HostMediaLoadRequestDataHelper.swift
+++ b/ios/Classes/HostMediaLoadRequestDataHelper.swift
@@ -186,14 +186,14 @@ func getMediaTracks(mediaTracks: [MediaTrack]?) -> [GCKMediaTrack]? {
var result = [GCKMediaTrack]()
mediaTracks?.forEach({ (t: MediaTrack) in
- let track = getMediaTrack(mediaTrack: t)
+ guard let track = getMediaTrack(mediaTrack: t) else { return }
result.append(track)
})
return result
}
-func getMediaTrack(mediaTrack: MediaTrack) -> GCKMediaTrack{
+func getMediaTrack(mediaTrack: MediaTrack) -> GCKMediaTrack? {
let trackId = mediaTrack.id as! Int
let trackType = getTrackType(trackType: mediaTrack.trackType)
let trackSubtype = getTrackSubtype(trackSubtype: mediaTrack.trackSubtype)
diff --git a/ios/flutter_cast_framework.podspec b/ios/flutter_cast_framework.podspec
index 28efb89..bcfe98b 100644
--- a/ios/flutter_cast_framework.podspec
+++ b/ios/flutter_cast_framework.podspec
@@ -17,11 +17,7 @@ A new flutter plugin project.
s.static_framework = true
s.dependency 'Flutter'
- s.dependency 'google-cast-sdk-no-bluetooth', '~> 4.4.4'
+ s.dependency 'google-cast-sdk-dynamic-xcframework-no-bluetooth'
- s.ios.deployment_target = '10.0'
-
- # This is to enable build on simulator
- s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
- s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
+ s.ios.deployment_target = '12.0'
end