From 617da2c296d165ed34901cffe385a3f7ecf133a2 Mon Sep 17 00:00:00 2001 From: Bruno D'Luka <45696119+bdlukaa@users.noreply.github.com> Date: Fri, 24 Jan 2025 14:34:12 -0500 Subject: [PATCH 01/14] fix: MacOS entitlements --- macos/Runner.xcodeproj/project.pbxproj | 21 ++++++++++++++++++--- macos/Runner/DebugProfile.entitlements | 2 +- macos/Runner/Info.plist | 2 ++ macos/Runner/Release.entitlements | 2 +- 4 files changed, 22 insertions(+), 5 deletions(-) diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index 5837acf9..cffe69e8 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -596,16 +596,21 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 21; + DEVELOPMENT_TEAM = 642TR6YWHA; INFOPLIST_FILE = Runner/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = Bluecherry; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.video"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 11.0; - PRODUCT_BUNDLE_IDENTIFIER = com.bluecherrydvr; + MARKETING_VERSION = 3.0.0; + PRODUCT_BUNDLE_IDENTIFIER = com.bluecherry.bluecherry; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_VERSION = 5.0; }; @@ -732,16 +737,21 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 21; + DEVELOPMENT_TEAM = 642TR6YWHA; INFOPLIST_FILE = Runner/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = Bluecherry; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.video"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 11.0; - PRODUCT_BUNDLE_IDENTIFIER = com.bluecherrydvr; + MARKETING_VERSION = 3.0.0; + PRODUCT_BUNDLE_IDENTIFIER = com.bluecherry.bluecherry; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; @@ -755,16 +765,21 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 21; + DEVELOPMENT_TEAM = 642TR6YWHA; INFOPLIST_FILE = Runner/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = Bluecherry; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.video"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 11.0; - PRODUCT_BUNDLE_IDENTIFIER = com.bluecherrydvr; + MARKETING_VERSION = 3.0.0; + PRODUCT_BUNDLE_IDENTIFIER = com.bluecherry.bluecherry; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_VERSION = 5.0; }; diff --git a/macos/Runner/DebugProfile.entitlements b/macos/Runner/DebugProfile.entitlements index 5bffe6ed..1fbcb4ea 100644 --- a/macos/Runner/DebugProfile.entitlements +++ b/macos/Runner/DebugProfile.entitlements @@ -3,7 +3,7 @@ com.apple.security.app-sandbox - + com.apple.security.cs.allow-jit com.apple.security.network.client diff --git a/macos/Runner/Info.plist b/macos/Runner/Info.plist index 895745e9..c474c75c 100644 --- a/macos/Runner/Info.plist +++ b/macos/Runner/Info.plist @@ -40,5 +40,7 @@ MainMenu NSPrincipalClass NSApplication + LSApplicationCategoryType + public.app-category.video diff --git a/macos/Runner/Release.entitlements b/macos/Runner/Release.entitlements index 87afd9a3..225aa48b 100644 --- a/macos/Runner/Release.entitlements +++ b/macos/Runner/Release.entitlements @@ -3,7 +3,7 @@ com.apple.security.app-sandbox - + com.apple.security.network.client keychain-access-groups From 07b611200de95eb68b452e3eab949f070390a41f Mon Sep 17 00:00:00 2001 From: Bruno D'Luka <45696119+bdlukaa@users.noreply.github.com> Date: Sat, 25 Jan 2025 23:08:50 -0500 Subject: [PATCH 02/14] feat: Remove media_kit_libs_macos_video --- macos/Flutter/GeneratedPluginRegistrant.swift | 2 -- .../unity_video_player_main/pubspec.yaml | 8 ++++---- pubspec.lock | 9 --------- 3 files changed, 4 insertions(+), 15 deletions(-) diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 584dc4f8..a5e5f681 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -14,7 +14,6 @@ import firebase_messaging import flutter_secure_storage_macos import fvp import local_auth_darwin -import media_kit_libs_macos_video import media_kit_video import package_info_plus import path_provider_foundation @@ -35,7 +34,6 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin")) FvpPlugin.register(with: registry.registrar(forPlugin: "FvpPlugin")) FLALocalAuthPlugin.register(with: registry.registrar(forPlugin: "FLALocalAuthPlugin")) - MediaKitLibsMacosVideoPlugin.register(with: registry.registrar(forPlugin: "MediaKitLibsMacosVideoPlugin")) MediaKitVideoPlugin.register(with: registry.registrar(forPlugin: "MediaKitVideoPlugin")) FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin")) PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) diff --git a/packages/unity_video_player/unity_video_player_main/pubspec.yaml b/packages/unity_video_player/unity_video_player_main/pubspec.yaml index a1c8dd7e..2a0f7b5f 100644 --- a/packages/unity_video_player/unity_video_player_main/pubspec.yaml +++ b/packages/unity_video_player/unity_video_player_main/pubspec.yaml @@ -42,10 +42,10 @@ dependencies: # git: # url: https://github.com/media-kit/media-kit/ # path: libs/linux/media_kit_libs_linux - media_kit_libs_macos_video: - git: - url: https://github.com/media-kit/media-kit/ - path: libs/macos/media_kit_libs_macos_video + # media_kit_libs_macos_video: + # git: + # url: https://github.com/media-kit/media-kit/ + # path: libs/macos/media_kit_libs_macos_video media_kit_libs_windows_video: git: url: https://github.com/media-kit/media-kit/ diff --git a/pubspec.lock b/pubspec.lock index f038b76b..9f62704e 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -671,15 +671,6 @@ packages: url: "https://github.com/media-kit/media-kit/" source: git version: "1.1.4" - media_kit_libs_macos_video: - dependency: transitive - description: - path: "libs/macos/media_kit_libs_macos_video" - ref: HEAD - resolved-ref: "0b7b7e4d88a0bc574550a929835e0400c7c2d135" - url: "https://github.com/media-kit/media-kit/" - source: git - version: "1.1.4" media_kit_libs_windows_video: dependency: transitive description: From 876ca7b188a8833f17e29ab64cbf16caf8550dbf Mon Sep 17 00:00:00 2001 From: Bruno D'Luka Date: Sun, 26 Jan 2025 01:10:00 -0300 Subject: [PATCH 03/14] fix: Dismiss overlay if button is disposed --- lib/widgets/desktop_buttons.dart | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/widgets/desktop_buttons.dart b/lib/widgets/desktop_buttons.dart index c9b861fb..677fc40d 100644 --- a/lib/widgets/desktop_buttons.dart +++ b/lib/widgets/desktop_buttons.dart @@ -132,6 +132,7 @@ class _WindowButtonsState extends State @override void dispose() { _animationController.dispose(); + dismissOverlayEntry(); super.dispose(); } @@ -405,9 +406,19 @@ class _WindowButtonsState extends State width: double.infinity, ), ); + } else { + /// If not in immersive mode, return the bar directly. + /// + /// The overlay is dismissed here because, if the overlay was not dismissed + /// when the immersive mode was enabled, the overlay would be shown on top + /// of the bar. It does nothing if the overlay is already dismissed. + return MouseRegion( + onExit: (_) { + dismissOverlayEntry(); + }, + child: bar, + ); } - - return bar; } OverlayEntry? _overlayEntry; From 2c0ab95b0530e4fd7d13f7304f8320f99457bca3 Mon Sep 17 00:00:00 2001 From: Bruno D'Luka Date: Sun, 26 Jan 2025 01:17:15 -0300 Subject: [PATCH 04/14] fix: Dismiss tooltips when top bar is dismissed --- lib/widgets/desktop_buttons.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/widgets/desktop_buttons.dart b/lib/widgets/desktop_buttons.dart index 677fc40d..2c1e99bc 100644 --- a/lib/widgets/desktop_buttons.dart +++ b/lib/widgets/desktop_buttons.dart @@ -463,6 +463,7 @@ class _WindowButtonsState extends State } Future dismissOverlayEntry() async { + Tooltip.dismissAllToolTips(); await _animationController.reverse(); _overlayEntry?.remove(); _overlayEntry = null; From 23bb984bfd3ea80a70a3199c5568e3dddb91c34b Mon Sep 17 00:00:00 2001 From: Bruno D'Luka Date: Sun, 26 Jan 2025 01:31:57 -0300 Subject: [PATCH 05/14] chore: Update README installing instructions --- README.md | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 1ee67c7d..b2b6febd 100644 --- a/README.md +++ b/README.md @@ -25,30 +25,27 @@
$~~~~~$📱 For smaller screens, see multiple cameras in 2x3, 2x2, 2x1 or 1x1 view
$~~~~~$👆 Re-orgderable drag-and-drop camera viewer
$~~~~~$🛞 Cycle through different layout views automatically -- 🔎 Pinch-to-zoom fullscreen camera viewer. +- 🔎 Pinch-to-zoom fullscreen camera viewer - 📹 Multicast streams support - 🏃 Events List Viewer - 🚡 Events Timeline Viewer -- 📸 Direct camera viewer. - 🎮 **P**an-**T**ilt-**Z**oom controls for supported cameras. -- 🌓 Light & dark app theme. -- 📰 System camera event notifications. +- 🌓 Light & dark app theme +- 📰 System camera event notifications - 📺 Adaptive and responsive design for larger screens - 📱 Cross-platform -
$~~~~$📱 Mobile: Android & iOS -
$~~~~$🖥️ Desktop: Windows, Linux & MacOS - 📦 Automatic updates ## Download -| Android | iOS | Windows | GNU/Linux | MacOS | -| ---------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | -| [arm64 `.apk`](https://github.com/bluecherrydvr/unity/releases/download/v3.0.0-beta22/bluecherry-android-arm64-v8a-release.apk) | [App Store](https://apps.apple.com/us/app/bluecherry-mobile/id1555805139) | [Windows Setup](https://github.com/bluecherrydvr/unity/releases/download/v3.0.0-beta22/bluecherry-windows-setup.exe) | [SnapStore](https://snapcraft.io/bluecherry-client) | [Executable `.app`](https://github.com/bluecherrydvr/unity/releases/download/v3.0.0-beta22/bluecherry-macos.7z) | -| [armabi `.apk`](https://github.com/bluecherrydvr/unity/releases/download/v3.0.0-beta22/bluecherry-android-armeabi-v7a-release.apk) | | 🚧 **SOON** ~~`winget install bluecherry`~~ | [Ubuntu/Debian `.deb`](https://github.com/bluecherrydvr/unity/releases/download/v3.0.0-beta22/bluecherry-linux-x86_64.deb) | 🚧 **SOON** ~~[App Store](https://github.com/bluecherrydvr/unity/issues/112)~~ | -| [x86_64 `.apk`](https://github.com/bluecherrydvr/unity/releases/download/v3.0.0-beta22/bluecherry-android-x86_64-release.apk) | | 🚧 **SOON** ~~Microsoft Store~~ | [Raw Executable `.tar.gz`](https://github.com/bluecherrydvr/unity/releases/download/v3.0.0-beta22/bluecherry-linux-x86_64.tar.gz) | | -| 🚧 **SOON** ~~Play Store~~ | | | [Fedora/Red Hat Linux `.rpm`](https://github.com/bluecherrydvr/unity/releases/download/v3.0.0-beta22/bluecherry-linux-x86_64.rpm) | | +| Android | iOS | Windows | GNU/Linux | MacOS | +| ---------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| [arm64 `.apk`](https://github.com/bluecherrydvr/unity/releases/download/v3.0.0-beta22/bluecherry-android-arm64-v8a-release.apk) | [App Store](https://apps.apple.com/us/app/bluecherry-mobile/id1555805139) | [Windows Setup](https://github.com/bluecherrydvr/unity/releases/download/v3.0.0-beta22/bluecherry-windows-setup.exe) | [SnapStore](https://snapcraft.io/bluecherry-client) | [App Store](https://apps.apple.com/us/app/bluecherry-mobile/id6474160553) | +| [armabi `.apk`](https://github.com/bluecherrydvr/unity/releases/download/v3.0.0-beta22/bluecherry-android-armeabi-v7a-release.apk) | | 🚧 **SOON** ~~`winget install bluecherry`~~ | [Ubuntu/Debian `.deb`](https://github.com/bluecherrydvr/unity/releases/download/v3.0.0-beta22/bluecherry-linux-x86_64.deb) | | +| [x86_64 `.apk`](https://github.com/bluecherrydvr/unity/releases/download/v3.0.0-beta22/bluecherry-android-x86_64-release.apk) | | 🚧 **SOON** ~~Microsoft Store~~ | [Raw Executable `.tar.gz`](https://github.com/bluecherrydvr/unity/releases/download/v3.0.0-beta22/bluecherry-linux-x86_64.tar.gz) | | +| 🚧 **SOON** ~~Play Store~~ | | | [Fedora/Red Hat Linux `.rpm`](https://github.com/bluecherrydvr/unity/releases/download/v3.0.0-beta22/bluecherry-linux-x86_64.rpm) | | -Or download the latest release [here](https://github.com/bluecherrydvr/unity/releases). +Or download the latest release [here](https://github.com/bluecherrydvr/unity/releases/tag/bleeding_edge)*. ### Installation From 75bcdb70f286d4cd8ee2f419ac9fde0b9f5c78cb Mon Sep 17 00:00:00 2001 From: Bruno D'Luka Date: Sun, 26 Jan 2025 01:34:10 -0300 Subject: [PATCH 06/14] chore: Remove macos workflow --- .github/workflows/build.yml | 99 +++++++++++++++++++------------------ 1 file changed, 50 insertions(+), 49 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9ae1d55a..91cb4152 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -121,55 +121,56 @@ jobs: # .exe # token: ${{ secrets.GITHUB_TOKEN }} - build_macOS: - name: Bluecherry Client macOS - runs-on: macos-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - token: ${{ secrets.GITHUB_TOKEN }} - submodules: recursive - - uses: subosito/flutter-action@v2.8.0 - with: - channel: "stable" - architecture: x64 - # cache: true - - - name: Update Pods - working-directory: ./macos/ - run: | - pod repo update - pod cache clean mdk - rm -rf /Pods - rm -rf /Podfile.lock - - - run: flutter gen-l10n - - run: flutter pub get - - - run: flutter build macos --verbose - - run: 7z a bluecherry-macos.7z build/macos/Build/Products/Release/unity.app - - name: Release - # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-using-contexts - if: ${{ github.event_name == 'push' }} - uses: softprops/action-gh-release@v1 - with: - draft: true - prerelease: false - body: "" - tag_name: "bleeding_edge" - files: | - bluecherry-macos.7z - token: ${{ secrets.GITHUB_TOKEN }} - - - name: Release - # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-using-contexts - if: startsWith(github.ref, 'refs/tags/') - uses: softprops/action-gh-release@v1 - with: - files: | - bluecherry-macos.7z - token: ${{ secrets.GITHUB_TOKEN }} + # macOS build is now only available on the mac app store. + # build_macOS: + # name: Bluecherry Client macOS + # runs-on: macos-latest + # steps: + # - name: Checkout + # uses: actions/checkout@v4 + # with: + # token: ${{ secrets.GITHUB_TOKEN }} + # submodules: recursive + # - uses: subosito/flutter-action@v2.8.0 + # with: + # channel: "stable" + # architecture: x64 + # # cache: true + + # - name: Update Pods + # working-directory: ./macos/ + # run: | + # pod repo update + # pod cache clean mdk + # rm -rf /Pods + # rm -rf /Podfile.lock + + # - run: flutter gen-l10n + # - run: flutter pub get + + # - run: flutter build macos --verbose + # - run: 7z a bluecherry-macos.7z build/macos/Build/Products/Release/unity.app + # - name: Release + # # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-using-contexts + # if: ${{ github.event_name == 'push' }} + # uses: softprops/action-gh-release@v1 + # with: + # draft: true + # prerelease: false + # body: "" + # tag_name: "bleeding_edge" + # files: | + # bluecherry-macos.7z + # token: ${{ secrets.GITHUB_TOKEN }} + + # - name: Release + # # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-using-contexts + # if: startsWith(github.ref, 'refs/tags/') + # uses: softprops/action-gh-release@v1 + # with: + # files: | + # bluecherry-macos.7z + # token: ${{ secrets.GITHUB_TOKEN }} build_windows: name: Bluecherry Client Windows From a7449d6e3e2aaab743e014e32d391a562aaed3c4 Mon Sep 17 00:00:00 2001 From: Bruno D'Luka <45696119+bdlukaa@users.noreply.github.com> Date: Tue, 28 Jan 2025 12:32:58 -0500 Subject: [PATCH 07/14] fix: Only save if layout manager height is not null --- lib/providers/layouts_provider.dart | 3 ++- macos/Flutter/ephemeral/Flutter-Generated.xcconfig | 4 ++-- macos/Flutter/ephemeral/flutter_export_environment.sh | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/providers/layouts_provider.dart b/lib/providers/layouts_provider.dart index fb86726a..e2cc2e35 100644 --- a/lib/providers/layouts_provider.dart +++ b/lib/providers/layouts_provider.dart @@ -98,7 +98,8 @@ class LayoutsProvider extends UnityProvider { kStorageDesktopLockedLayouts: jsonEncode( lockedLayouts.map((l) => l.name).toList(), ), - kStorageDesktopLayoutManagerHeight: layoutManagerHeight, + if (layoutManagerHeight != null) + kStorageDesktopLayoutManagerHeight: layoutManagerHeight, }); super.save(notifyListeners: notifyListeners); } diff --git a/macos/Flutter/ephemeral/Flutter-Generated.xcconfig b/macos/Flutter/ephemeral/Flutter-Generated.xcconfig index c6331a3a..07712619 100644 --- a/macos/Flutter/ephemeral/Flutter-Generated.xcconfig +++ b/macos/Flutter/ephemeral/Flutter-Generated.xcconfig @@ -2,11 +2,11 @@ FLUTTER_ROOT=/Users/user249455/Documents/development/flutter FLUTTER_APPLICATION_PATH=/Users/user249455/Documents/GitHub/unity COCOAPODS_PARALLEL_CODE_SIGN=true -FLUTTER_TARGET=lib/main.dart +FLUTTER_TARGET=/Users/user249455/Documents/GitHub/unity/lib/main.dart FLUTTER_BUILD_DIR=build FLUTTER_BUILD_NAME=3.0.022 FLUTTER_BUILD_NUMBER=3.0.022 DART_OBFUSCATION=false TRACK_WIDGET_CREATION=true -TREE_SHAKE_ICONS=true +TREE_SHAKE_ICONS=false PACKAGE_CONFIG=/Users/user249455/Documents/GitHub/unity/.dart_tool/package_config.json diff --git a/macos/Flutter/ephemeral/flutter_export_environment.sh b/macos/Flutter/ephemeral/flutter_export_environment.sh index 5f65520f..57757e89 100755 --- a/macos/Flutter/ephemeral/flutter_export_environment.sh +++ b/macos/Flutter/ephemeral/flutter_export_environment.sh @@ -3,11 +3,11 @@ export "FLUTTER_ROOT=/Users/user249455/Documents/development/flutter" export "FLUTTER_APPLICATION_PATH=/Users/user249455/Documents/GitHub/unity" export "COCOAPODS_PARALLEL_CODE_SIGN=true" -export "FLUTTER_TARGET=lib/main.dart" +export "FLUTTER_TARGET=/Users/user249455/Documents/GitHub/unity/lib/main.dart" export "FLUTTER_BUILD_DIR=build" export "FLUTTER_BUILD_NAME=3.0.022" export "FLUTTER_BUILD_NUMBER=3.0.022" export "DART_OBFUSCATION=false" export "TRACK_WIDGET_CREATION=true" -export "TREE_SHAKE_ICONS=true" +export "TREE_SHAKE_ICONS=false" export "PACKAGE_CONFIG=/Users/user249455/Documents/GitHub/unity/.dart_tool/package_config.json" From eac8cc0c304eba4d0af151f6349013bd3d357e9d Mon Sep 17 00:00:00 2001 From: Bruno D'Luka Date: Tue, 28 Jan 2025 14:33:41 -0300 Subject: [PATCH 08/14] fix: Do not throw error on stream error --- .../lib/unity_video_player_flutter.dart | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/unity_video_player/unity_video_player_flutter/lib/unity_video_player_flutter.dart b/packages/unity_video_player/unity_video_player_flutter/lib/unity_video_player_flutter.dart index a8ae22c9..d778de22 100644 --- a/packages/unity_video_player/unity_video_player_flutter/lib/unity_video_player_flutter.dart +++ b/packages/unity_video_player/unity_video_player_flutter/lib/unity_video_player_flutter.dart @@ -204,11 +204,10 @@ class UnityVideoPlayerFlutter extends UnityVideoPlayer { if (autoPlay) { await player!.play(); } - } catch (e, _) { + } catch (e, stackTrace) { error = e.toString(); + _videoStream.addError(e, stackTrace); notifyListeners(); - - rethrow; } } From a29f6a389540f61e60d48aceaa4011e2ab357fbe Mon Sep 17 00:00:00 2001 From: Bruno D'Luka <45696119+bdlukaa@users.noreply.github.com> Date: Tue, 28 Jan 2025 12:46:02 -0500 Subject: [PATCH 09/14] fix: Crash when disposing multiple players This was only applied to Linux, but it is necessary on macos as well. This is now the default for all platforms, except the web. --- .../lib/unity_video_player_flutter.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/unity_video_player/unity_video_player_flutter/lib/unity_video_player_flutter.dart b/packages/unity_video_player/unity_video_player_flutter/lib/unity_video_player_flutter.dart index d778de22..68ac0b74 100644 --- a/packages/unity_video_player/unity_video_player_flutter/lib/unity_video_player_flutter.dart +++ b/packages/unity_video_player/unity_video_player_flutter/lib/unity_video_player_flutter.dart @@ -276,7 +276,7 @@ class UnityVideoPlayerFlutter extends UnityVideoPlayer { @override Future release() async { - if (!kIsWeb && Platform.isLinux) { + if (!kIsWeb) { await pause(); await Future.delayed(const Duration(milliseconds: 150)); } From 7b51b9e6fd1bea26bdb7dfb69c95e4f9d6bf99a6 Mon Sep 17 00:00:00 2001 From: Bruno D'Luka Date: Wed, 29 Jan 2025 01:07:39 -0300 Subject: [PATCH 10/14] feat: iOS post clone script --- ios/ci_scripts/ci_post_clone.sh | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100755 ios/ci_scripts/ci_post_clone.sh diff --git a/ios/ci_scripts/ci_post_clone.sh b/ios/ci_scripts/ci_post_clone.sh new file mode 100755 index 00000000..01acc60c --- /dev/null +++ b/ios/ci_scripts/ci_post_clone.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +# Fail this script if any subcommand fails. +set -e + +# The default execution directory of this script is the ci_scripts directory. +cd $CI_PRIMARY_REPOSITORY_PATH # change working directory to the root of your cloned repo. + +# Install Flutter using git. +git clone https://github.com/flutter/flutter.git --depth 1 -b stable $HOME/flutter +export PATH="$PATH:$HOME/flutter/bin" + +# Install Flutter artifacts for iOS (--ios), or macOS (--macos) platforms. +flutter precache --ios + +# Install Flutter dependencies. +flutter pub get + +# Install CocoaPods using Homebrew. +HOMEBREW_NO_AUTO_UPDATE=1 # disable homebrew's automatic updates. +brew install cocoapods + +# Install CocoaPods dependencies. +cd ios && pod install # run `pod install` in the `ios` directory. + +exit 0 \ No newline at end of file From 3aa15386408a87b8ba001e5040d008100f5e7edc Mon Sep 17 00:00:00 2001 From: Bruno D'Luka Date: Wed, 29 Jan 2025 01:10:40 -0300 Subject: [PATCH 11/14] feat: macOS post clone script --- macos/ci_scripts/ci_post_clone.sh | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100755 macos/ci_scripts/ci_post_clone.sh diff --git a/macos/ci_scripts/ci_post_clone.sh b/macos/ci_scripts/ci_post_clone.sh new file mode 100755 index 00000000..032eff67 --- /dev/null +++ b/macos/ci_scripts/ci_post_clone.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +# https://docs.flutter.dev/deployment/cd#post-clone-script +# Fail this script if any subcommand fails. +set -e + +# The default execution directory of this script is the ci_scripts directory. +cd $CI_PRIMARY_REPOSITORY_PATH # change working directory to the root of your cloned repo. + +# Install Flutter using git. +git clone https://github.com/flutter/flutter.git --depth 1 -b stable $HOME/flutter +export PATH="$PATH:$HOME/flutter/bin" + +# Install Flutter artifacts for iOS (--ios), or macOS (--macos) platforms. +flutter precache --macos + +# Install Flutter dependencies. +flutter pub get + +# Install CocoaPods using Homebrew. +HOMEBREW_NO_AUTO_UPDATE=1 # disable homebrew's automatic updates. +brew install cocoapods + +# Install CocoaPods dependencies. +cd macos && pod install # run `pod install` in the `macos` directory. + +exit 0 \ No newline at end of file From 5d93d8694f16be48c9821a60e4df6dfc7a609a3b Mon Sep 17 00:00:00 2001 From: Bruno D'Luka Date: Wed, 29 Jan 2025 01:10:55 -0300 Subject: [PATCH 12/14] chore: Script source docs --- ios/ci_scripts/ci_post_clone.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/ios/ci_scripts/ci_post_clone.sh b/ios/ci_scripts/ci_post_clone.sh index 01acc60c..ceea905f 100755 --- a/ios/ci_scripts/ci_post_clone.sh +++ b/ios/ci_scripts/ci_post_clone.sh @@ -1,5 +1,6 @@ #!/bin/sh +# https://docs.flutter.dev/deployment/cd#post-clone-script # Fail this script if any subcommand fails. set -e From 6a659cb56242724a20aac8c4009a76c8606f34ec Mon Sep 17 00:00:00 2001 From: Bruno D'Luka Date: Wed, 29 Jan 2025 01:41:38 -0300 Subject: [PATCH 13/14] fix: Build for macos --- macos/ci_scripts/ci_post_clone.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/macos/ci_scripts/ci_post_clone.sh b/macos/ci_scripts/ci_post_clone.sh index 032eff67..5426950e 100755 --- a/macos/ci_scripts/ci_post_clone.sh +++ b/macos/ci_scripts/ci_post_clone.sh @@ -21,6 +21,9 @@ flutter pub get HOMEBREW_NO_AUTO_UPDATE=1 # disable homebrew's automatic updates. brew install cocoapods +# Build for macos +flutter build macos + # Install CocoaPods dependencies. cd macos && pod install # run `pod install` in the `macos` directory. From 59dac95f53fe213b366b2c7df0e1af690229d7f0 Mon Sep 17 00:00:00 2001 From: Bruno D'Luka Date: Wed, 29 Jan 2025 01:58:59 -0300 Subject: [PATCH 14/14] fix: Remove signing on macos --- macos/Runner.xcodeproj/project.pbxproj | 6 ------ 1 file changed, 6 deletions(-) diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index cffe69e8..1721ff63 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -596,11 +596,9 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 21; - DEVELOPMENT_TEAM = 642TR6YWHA; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = Bluecherry; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.video"; @@ -737,11 +735,9 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 21; - DEVELOPMENT_TEAM = 642TR6YWHA; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = Bluecherry; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.video"; @@ -765,11 +761,9 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 21; - DEVELOPMENT_TEAM = 642TR6YWHA; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = Bluecherry; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.video";