From 6b596347152795b57f2beb2e7b2bfc7199172649 Mon Sep 17 00:00:00 2001 From: zeyus Date: Thu, 12 Mar 2026 16:57:53 +0100 Subject: [PATCH] Fix OSX build --- .fvmrc | 3 + .gitignore | 3 + commet/ios/Flutter/Debug.xcconfig | 1 + commet/ios/Flutter/Release.xcconfig | 1 + commet/ios/Podfile | 43 +++++++ commet/ios/Runner/Info.plist | 5 + commet/macos/Flutter/Flutter-Debug.xcconfig | 1 + commet/macos/Flutter/Flutter-Release.xcconfig | 1 + .../Flutter/GeneratedPluginRegistrant.swift | 2 + commet/macos/Podfile | 42 +++++++ commet/macos/Podfile.lock | 107 ++++++++++++++++ commet/macos/Runner.xcodeproj/project.pbxproj | 115 +++++++++++++++--- .../xcshareddata/swiftpm/Package.resolved | 13 ++ .../xcshareddata/xcschemes/Runner.xcscheme | 21 +++- .../contents.xcworkspacedata | 3 + .../xcshareddata/swiftpm/Package.resolved | 13 ++ commet/macos/Runner/AppDelegate.swift | 6 +- commet/macos/Runner/DebugProfile.entitlements | 6 + commet/macos/Runner/Info.plist | 8 ++ commet/macos/Runner/Release.entitlements | 6 + commet/pubspec.yaml | 13 ++ pubspec.lock | 82 ++++--------- tiamat/macos/Flutter/Flutter-Debug.xcconfig | 1 + tiamat/macos/Flutter/Flutter-Release.xcconfig | 1 + tiamat/macos/Podfile | 42 +++++++ 25 files changed, 461 insertions(+), 78 deletions(-) create mode 100644 .fvmrc create mode 100644 commet/ios/Podfile create mode 100644 commet/macos/Podfile create mode 100644 commet/macos/Podfile.lock create mode 100644 commet/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved create mode 100644 commet/macos/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved create mode 100644 tiamat/macos/Podfile diff --git a/.fvmrc b/.fvmrc new file mode 100644 index 000000000..c300356c3 --- /dev/null +++ b/.fvmrc @@ -0,0 +1,3 @@ +{ + "flutter": "stable" +} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 630d1f08d..be935c75c 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,6 @@ widgets/calendar/android/local.properties .vscode/settings.json .idea/ /build + +# FVM Version Cache +.fvm/ \ No newline at end of file diff --git a/commet/ios/Flutter/Debug.xcconfig b/commet/ios/Flutter/Debug.xcconfig index 592ceee85..ec97fc6f3 100644 --- a/commet/ios/Flutter/Debug.xcconfig +++ b/commet/ios/Flutter/Debug.xcconfig @@ -1 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/commet/ios/Flutter/Release.xcconfig b/commet/ios/Flutter/Release.xcconfig index 592ceee85..c4855bfe2 100644 --- a/commet/ios/Flutter/Release.xcconfig +++ b/commet/ios/Flutter/Release.xcconfig @@ -1 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/commet/ios/Podfile b/commet/ios/Podfile new file mode 100644 index 000000000..b932c8af2 --- /dev/null +++ b/commet/ios/Podfile @@ -0,0 +1,43 @@ +# Uncomment this line to define a global platform for your project +# platform :ios, '13.0' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_ios_podfile_setup + +target 'Runner' do + use_frameworks! + + flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) +# target 'RunnerTests' do +# inherit! :search_paths +# end +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_ios_build_settings(target) + end +end diff --git a/commet/ios/Runner/Info.plist b/commet/ios/Runner/Info.plist index 0fb038ed1..ed702207e 100644 --- a/commet/ios/Runner/Info.plist +++ b/commet/ios/Runner/Info.plist @@ -47,5 +47,10 @@ UIApplicationSupportsIndirectInputEvents + NSCameraUsageDescription + Commet needs camera access for video calls. + NSMicrophoneUsageDescription + Commet needs microphone access for voice calls. + diff --git a/commet/macos/Flutter/Flutter-Debug.xcconfig b/commet/macos/Flutter/Flutter-Debug.xcconfig index c2efd0b60..4b81f9b2d 100644 --- a/commet/macos/Flutter/Flutter-Debug.xcconfig +++ b/commet/macos/Flutter/Flutter-Debug.xcconfig @@ -1 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "ephemeral/Flutter-Generated.xcconfig" diff --git a/commet/macos/Flutter/Flutter-Release.xcconfig b/commet/macos/Flutter/Flutter-Release.xcconfig index c2efd0b60..5caa9d157 100644 --- a/commet/macos/Flutter/Flutter-Release.xcconfig +++ b/commet/macos/Flutter/Flutter-Release.xcconfig @@ -1 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "ephemeral/Flutter-Generated.xcconfig" diff --git a/commet/macos/Flutter/GeneratedPluginRegistrant.swift b/commet/macos/Flutter/GeneratedPluginRegistrant.swift index 5d921fd69..d1e050abf 100644 --- a/commet/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/commet/macos/Flutter/GeneratedPluginRegistrant.swift @@ -22,6 +22,7 @@ import media_kit_libs_macos_video import media_kit_video import package_info_plus import pasteboard +import path_provider_foundation import screen_retriever_macos import shared_preferences_foundation import sqflite_darwin @@ -49,6 +50,7 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { MediaKitVideoPlugin.register(with: registry.registrar(forPlugin: "MediaKitVideoPlugin")) FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin")) PasteboardPlugin.register(with: registry.registrar(forPlugin: "PasteboardPlugin")) + PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) ScreenRetrieverMacosPlugin.register(with: registry.registrar(forPlugin: "ScreenRetrieverMacosPlugin")) SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) diff --git a/commet/macos/Podfile b/commet/macos/Podfile new file mode 100644 index 000000000..f6b415887 --- /dev/null +++ b/commet/macos/Podfile @@ -0,0 +1,42 @@ +platform :osx, '10.15' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\"" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_macos_podfile_setup + +target 'Runner' do + use_frameworks! + + flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__)) +# target 'RunnerTests' do +# inherit! :search_paths +# end +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_macos_build_settings(target) + end +end diff --git a/commet/macos/Podfile.lock b/commet/macos/Podfile.lock new file mode 100644 index 000000000..aabdda33a --- /dev/null +++ b/commet/macos/Podfile.lock @@ -0,0 +1,107 @@ +PODS: + - desktop_drop (0.0.1): + - FlutterMacOS + - desktop_webview_window (0.0.1): + - FlutterMacOS + - dynamic_color (0.0.2): + - FlutterMacOS + - flutter_vodozemac (0.0.1): + - FlutterMacOS + - flutter_web_auth_2 (3.0.0): + - FlutterMacOS + - flutter_webrtc (1.2.0): + - FlutterMacOS + - WebRTC-SDK (= 137.7151.04) + - FlutterMacOS (1.0.0) + - HotKey (0.2.1) + - hotkey_manager_macos (0.0.1): + - FlutterMacOS + - HotKey + - livekit_client (2.5.4): + - flutter_webrtc + - FlutterMacOS + - WebRTC-SDK (= 137.7151.04) + - media_kit_libs_macos_video (1.0.4): + - FlutterMacOS + - media_kit_video (0.0.1): + - FlutterMacOS + - pasteboard (0.0.1): + - FlutterMacOS + - screen_retriever_macos (0.0.1): + - FlutterMacOS + - WebRTC-SDK (137.7151.04) + - window_to_front (0.0.1): + - FlutterMacOS + +DEPENDENCIES: + - desktop_drop (from `Flutter/ephemeral/.symlinks/plugins/desktop_drop/macos`) + - desktop_webview_window (from `Flutter/ephemeral/.symlinks/plugins/desktop_webview_window/macos`) + - dynamic_color (from `Flutter/ephemeral/.symlinks/plugins/dynamic_color/macos`) + - flutter_vodozemac (from `Flutter/ephemeral/.symlinks/plugins/flutter_vodozemac/macos`) + - flutter_web_auth_2 (from `Flutter/ephemeral/.symlinks/plugins/flutter_web_auth_2/macos`) + - flutter_webrtc (from `Flutter/ephemeral/.symlinks/plugins/flutter_webrtc/macos`) + - FlutterMacOS (from `Flutter/ephemeral`) + - hotkey_manager_macos (from `Flutter/ephemeral/.symlinks/plugins/hotkey_manager_macos/macos`) + - livekit_client (from `Flutter/ephemeral/.symlinks/plugins/livekit_client/macos`) + - media_kit_libs_macos_video (from `Flutter/ephemeral/.symlinks/plugins/media_kit_libs_macos_video/macos`) + - media_kit_video (from `Flutter/ephemeral/.symlinks/plugins/media_kit_video/macos`) + - pasteboard (from `Flutter/ephemeral/.symlinks/plugins/pasteboard/macos`) + - screen_retriever_macos (from `Flutter/ephemeral/.symlinks/plugins/screen_retriever_macos/macos`) + - window_to_front (from `Flutter/ephemeral/.symlinks/plugins/window_to_front/macos`) + +SPEC REPOS: + trunk: + - HotKey + - WebRTC-SDK + +EXTERNAL SOURCES: + desktop_drop: + :path: Flutter/ephemeral/.symlinks/plugins/desktop_drop/macos + desktop_webview_window: + :path: Flutter/ephemeral/.symlinks/plugins/desktop_webview_window/macos + dynamic_color: + :path: Flutter/ephemeral/.symlinks/plugins/dynamic_color/macos + flutter_vodozemac: + :path: Flutter/ephemeral/.symlinks/plugins/flutter_vodozemac/macos + flutter_web_auth_2: + :path: Flutter/ephemeral/.symlinks/plugins/flutter_web_auth_2/macos + flutter_webrtc: + :path: Flutter/ephemeral/.symlinks/plugins/flutter_webrtc/macos + FlutterMacOS: + :path: Flutter/ephemeral + hotkey_manager_macos: + :path: Flutter/ephemeral/.symlinks/plugins/hotkey_manager_macos/macos + livekit_client: + :path: Flutter/ephemeral/.symlinks/plugins/livekit_client/macos + media_kit_libs_macos_video: + :path: Flutter/ephemeral/.symlinks/plugins/media_kit_libs_macos_video/macos + media_kit_video: + :path: Flutter/ephemeral/.symlinks/plugins/media_kit_video/macos + pasteboard: + :path: Flutter/ephemeral/.symlinks/plugins/pasteboard/macos + screen_retriever_macos: + :path: Flutter/ephemeral/.symlinks/plugins/screen_retriever_macos/macos + window_to_front: + :path: Flutter/ephemeral/.symlinks/plugins/window_to_front/macos + +SPEC CHECKSUMS: + desktop_drop: e0b672a7d84c0a6cbc378595e82cdb15f2970a43 + desktop_webview_window: 7e37af677d6d19294cb433d9b1d878ef78dffa4d + dynamic_color: b820c000cc68df65e7ba7ff177cb98404ce56651 + flutter_vodozemac: fd2ea9cb3e2a37beaac883a369811fbfe042fc53 + flutter_web_auth_2: 62b08da29f15a20fa63f144234622a1488d45b65 + flutter_webrtc: 718eae22a371cd94e5d56aa4f301443ebc5bb737 + FlutterMacOS: d0db08ddef1a9af05a5ec4b724367152bb0500b1 + HotKey: 400beb7caa29054ea8d864c96f5ba7e5b4852277 + hotkey_manager_macos: a4317849af96d2430fa89944d3c58977ca089fbe + livekit_client: 3df5a1787d64010ca56c4002959d9e47c03ba3fb + media_kit_libs_macos_video: 85a23e549b5f480e72cae3e5634b5514bc692f65 + media_kit_video: fa6564e3799a0a28bff39442334817088b7ca758 + pasteboard: 278d8100149f940fb795d6b3a74f0720c890ecb7 + screen_retriever_macos: 452e51764a9e1cdb74b3c541238795849f21557f + WebRTC-SDK: 40d4f5ba05cadff14e4db5614aec402a633f007e + window_to_front: 9e76fd432e36700a197dac86a0011e49c89abe0a + +PODFILE CHECKSUM: d96aa491aabb492ee9ce1c52e0b87f221a55f270 + +COCOAPODS: 1.16.2 diff --git a/commet/macos/Runner.xcodeproj/project.pbxproj b/commet/macos/Runner.xcodeproj/project.pbxproj index 83c675b80..c265db8dc 100644 --- a/commet/macos/Runner.xcodeproj/project.pbxproj +++ b/commet/macos/Runner.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 54; + objectVersion = 60; objects = { /* Begin PBXAggregateTarget section */ @@ -26,6 +26,8 @@ 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; + 8ABF8385180779EBF3EC9964 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D5599B5066EDB612845A0CF /* Pods_Runner.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -38,23 +40,10 @@ }; /* End PBXContainerItemProxy section */ -/* Begin PBXCopyFilesBuildPhase section */ - 33CC110E2044A8840003C045 /* Bundle Framework */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Bundle Framework"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - /* Begin PBXFileReference section */ 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; - 33CC10ED2044A3C60003C045 /* commet.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "commet.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10ED2044A3C60003C045 /* commet.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = commet.app; sourceTree = BUILT_PRODUCTS_DIR; }; 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; @@ -66,8 +55,14 @@ 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; + 4586DC622F6318DD0099275E /* flutter_vodozemac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = flutter_vodozemac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5D5599B5066EDB612845A0CF /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 71A4B9209BBE670369BA5AE1 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; + 9DEA1E775F3FB7646D2EB1A5 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + E97CFB3913FED7A81D2CF6C3 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -75,6 +70,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */, + 8ABF8385180779EBF3EC9964 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -99,6 +96,7 @@ 33CEB47122A05771004F2AC0 /* Flutter */, 33CC10EE2044A3C60003C045 /* Products */, D73912EC22F37F3D000D13A0 /* Frameworks */, + 8A17C73643CBDB6AB2FF49F1 /* Pods */, ); sourceTree = ""; }; @@ -124,6 +122,7 @@ 33CEB47122A05771004F2AC0 /* Flutter */ = { isa = PBXGroup; children = ( + 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */, 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, @@ -145,9 +144,21 @@ path = Runner; sourceTree = ""; }; + 8A17C73643CBDB6AB2FF49F1 /* Pods */ = { + isa = PBXGroup; + children = ( + 9DEA1E775F3FB7646D2EB1A5 /* Pods-Runner.debug.xcconfig */, + 71A4B9209BBE670369BA5AE1 /* Pods-Runner.release.xcconfig */, + E97CFB3913FED7A81D2CF6C3 /* Pods-Runner.profile.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; D73912EC22F37F3D000D13A0 /* Frameworks */ = { isa = PBXGroup; children = ( + 4586DC622F6318DD0099275E /* flutter_vodozemac.framework */, + 5D5599B5066EDB612845A0CF /* Pods_Runner.framework */, ); name = Frameworks; sourceTree = ""; @@ -159,11 +170,12 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( + 8B3D312A1FD6C2375818E1B0 /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, - 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, + 7FDB72E8B0A85FE806F040BC /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -171,6 +183,9 @@ 33CC11202044C79F0003C045 /* PBXTargetDependency */, ); name = Runner; + packageProductDependencies = ( + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */, + ); productName = Runner; productReference = 33CC10ED2044A3C60003C045 /* commet.app */; productType = "com.apple.product-type.application"; @@ -182,7 +197,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0920; - LastUpgradeCheck = 1300; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = ""; TargetAttributes = { 33CC10EC2044A3C60003C045 = { @@ -210,6 +225,9 @@ Base, ); mainGroup = 33CC10E42044A3C60003C045; + packageReferences = ( + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */, + ); productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; projectDirPath = ""; projectRoot = ""; @@ -271,6 +289,49 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; }; + 7FDB72E8B0A85FE806F040BC /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 8B3D312A1FD6C2375818E1B0 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + 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; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -345,7 +406,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; + MACOSX_DEPLOYMENT_TARGET = 10.15; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = macosx; SWIFT_COMPILATION_MODE = wholemodule; @@ -424,7 +485,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; + MACOSX_DEPLOYMENT_TARGET = 10.15; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; @@ -471,7 +532,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; + MACOSX_DEPLOYMENT_TARGET = 10.15; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = macosx; SWIFT_COMPILATION_MODE = wholemodule; @@ -568,6 +629,20 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + +/* Begin XCLocalSwiftPackageReference section */ + 781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; + }; +/* End XCLocalSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */ = { + isa = XCSwiftPackageProductDependency; + productName = FlutterGeneratedPluginSwiftPackage; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 33CC10E52044A3C60003C045 /* Project object */; } diff --git a/commet/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/commet/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 000000000..98c67e4a9 --- /dev/null +++ b/commet/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,13 @@ +{ + "pins" : [ + { + "identity" : "csqlite", + "kind" : "remoteSourceControl", + "location" : "https://github.com/simolus3/CSQLite.git", + "state" : { + "revision" : "ae972b235e8b3c5af6d8f4e5bf18c800bdddb27e" + } + } + ], + "version" : 2 +} diff --git a/commet/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/commet/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index b0f960503..7429e7695 100644 --- a/commet/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/commet/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,10 +1,28 @@ + + + + + + + + + + diff --git a/commet/macos/Runner.xcworkspace/contents.xcworkspacedata b/commet/macos/Runner.xcworkspace/contents.xcworkspacedata index 1d526a16e..21a3cc14c 100644 --- a/commet/macos/Runner.xcworkspace/contents.xcworkspacedata +++ b/commet/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -4,4 +4,7 @@ + + diff --git a/commet/macos/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved b/commet/macos/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 000000000..98c67e4a9 --- /dev/null +++ b/commet/macos/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,13 @@ +{ + "pins" : [ + { + "identity" : "csqlite", + "kind" : "remoteSourceControl", + "location" : "https://github.com/simolus3/CSQLite.git", + "state" : { + "revision" : "ae972b235e8b3c5af6d8f4e5bf18c800bdddb27e" + } + } + ], + "version" : 2 +} diff --git a/commet/macos/Runner/AppDelegate.swift b/commet/macos/Runner/AppDelegate.swift index d53ef6437..b3c176141 100644 --- a/commet/macos/Runner/AppDelegate.swift +++ b/commet/macos/Runner/AppDelegate.swift @@ -1,9 +1,13 @@ import Cocoa import FlutterMacOS -@NSApplicationMain +@main class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/commet/macos/Runner/DebugProfile.entitlements b/commet/macos/Runner/DebugProfile.entitlements index dddb8a30c..0b152b521 100644 --- a/commet/macos/Runner/DebugProfile.entitlements +++ b/commet/macos/Runner/DebugProfile.entitlements @@ -8,5 +8,11 @@ com.apple.security.network.server + com.apple.security.network.client + + com.apple.security.device.camera + + com.apple.security.device.microphone + diff --git a/commet/macos/Runner/Info.plist b/commet/macos/Runner/Info.plist index 4789daa6a..86a7dc2b0 100644 --- a/commet/macos/Runner/Info.plist +++ b/commet/macos/Runner/Info.plist @@ -28,5 +28,13 @@ MainMenu NSPrincipalClass NSApplication + NSMicrophoneUsageDescription + Commet needs microphone access for voice calls. + NSCameraUsageDescription + Commet needs camera access for video calls. + NSScreenCaptureDescription + Commet needs screen recording permission to share your screen during calls. + NSSystemAudioUsageDescription + Commet needs system audio access to capture audio. diff --git a/commet/macos/Runner/Release.entitlements b/commet/macos/Runner/Release.entitlements index 852fa1a47..1e977dfa6 100644 --- a/commet/macos/Runner/Release.entitlements +++ b/commet/macos/Runner/Release.entitlements @@ -4,5 +4,11 @@ com.apple.security.app-sandbox + com.apple.security.network.client + + com.apple.security.device.camera + + com.apple.security.device.microphone + diff --git a/commet/pubspec.yaml b/commet/pubspec.yaml index 96c3b5ae5..868d376d2 100644 --- a/commet/pubspec.yaml +++ b/commet/pubspec.yaml @@ -145,6 +145,19 @@ dependency_overrides: url: https://github.com/commetchat/mixin-flutter-plugins.git ref: webview-patch path: ./packages/desktop_webview_window + ## The media_kit macos and ios video libraries have an issue + ## in the published version. see: https://github.com/media-kit/media-kit/issues/709 + ## this probably should be forked to prevent unstable updates. + media_kit_libs_macos_video: + git: + url: https://github.com/media-kit/media-kit + ref: main + path: libs/macos/media_kit_libs_macos_video + media_kit_libs_ios_video: + git: + url: https://github.com/media-kit/media-kit + ref: main + path: libs/ios/media_kit_libs_ios_video dev_dependencies: drift_dev: ^2.28.0 diff --git a/pubspec.lock b/pubspec.lock index b9a6559bc..f36d7919e 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -218,14 +218,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.2" - code_assets: - dependency: transitive - description: - name: code_assets - sha256: "83ccdaa064c980b5596c35dd64a8d3ecc68620174ab9b90b6343b753aa721687" - url: "https://pub.dev" - source: hosted - version: "1.0.0" code_builder: dependency: transitive description: @@ -822,14 +814,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.1.1" - hooks: - dependency: transitive - description: - name: hooks - sha256: "7a08a0d684cb3b8fb604b78455d5d352f502b68079f7b80b831c62220ab0a4f6" - url: "https://pub.dev" - source: hosted - version: "1.0.1" hotkey_manager: dependency: transitive description: @@ -1184,10 +1168,10 @@ packages: dependency: transitive description: name: matcher - sha256: "12956d0ad8390bbcc63ca2e1469c0619946ccb52809807067a7020d57e647aa6" + sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861 url: "https://pub.dev" source: hosted - version: "0.12.18" + version: "0.12.19" material_color_utilities: dependency: transitive description: @@ -1231,12 +1215,13 @@ packages: source: hosted version: "1.3.8" media_kit_libs_ios_video: - dependency: transitive + dependency: "direct overridden" description: - name: media_kit_libs_ios_video - sha256: b5382994eb37a4564c368386c154ad70ba0cc78dacdd3fb0cd9f30db6d837991 - url: "https://pub.dev" - source: hosted + path: "libs/ios/media_kit_libs_ios_video" + ref: main + resolved-ref: "7102e7da96f39c718487a8f7a59b6a034aae7f45" + url: "https://github.com/media-kit/media-kit" + source: git version: "1.1.4" media_kit_libs_linux: dependency: transitive @@ -1247,12 +1232,13 @@ packages: source: hosted version: "1.2.1" media_kit_libs_macos_video: - dependency: transitive + dependency: "direct overridden" description: - name: media_kit_libs_macos_video - sha256: f26aa1452b665df288e360393758f84b911f70ffb3878032e1aabba23aa1032d - url: "https://pub.dev" - source: hosted + path: "libs/macos/media_kit_libs_macos_video" + ref: main + resolved-ref: "7102e7da96f39c718487a8f7a59b6a034aae7f45" + url: "https://github.com/media-kit/media-kit" + source: git version: "1.1.4" media_kit_libs_video: dependency: transitive @@ -1282,10 +1268,10 @@ packages: dependency: transitive description: name: meta - sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394" + sha256: "1741988757a65eb6b36abe716829688cf01910bbf91c34354ff7ec1c3de2b349" url: "https://pub.dev" source: hosted - version: "1.17.0" + version: "1.18.0" mime: dependency: transitive description: @@ -1310,14 +1296,6 @@ packages: url: "https://pub.dev" source: hosted version: "3.16.13" - native_toolchain_c: - dependency: transitive - description: - name: native_toolchain_c - sha256: "89e83885ba09da5fdf2cdacc8002a712ca238c28b7f717910b34bcd27b0d03ac" - url: "https://pub.dev" - source: hosted - version: "0.17.4" nested: dependency: transitive description: @@ -1342,14 +1320,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.0.2" - objective_c: - dependency: transitive - description: - name: objective_c - sha256: "100a1c87616ab6ed41ec263b083c0ef3261ee6cd1dc3b0f35f8ddfa4f996fe52" - url: "https://pub.dev" - source: hosted - version: "9.3.0" package_config: dependency: transitive description: @@ -1418,10 +1388,10 @@ packages: dependency: transitive description: name: path_provider_foundation - sha256: "2a376b7d6392d80cd3705782d2caa734ca4727776db0b6ec36ef3f1855197699" + sha256: "6d13aece7b3f5c5a9731eaf553ff9dcbc2eff41087fd2df587fd0fed9a3eb0c4" url: "https://pub.dev" source: hosted - version: "2.6.0" + version: "2.5.1" path_provider_linux: dependency: transitive description: @@ -2002,26 +1972,26 @@ packages: dependency: transitive description: name: test - sha256: "54c516bbb7cee2754d327ad4fca637f78abfc3cbcc5ace83b3eda117e42cd71a" + sha256: "280d6d890011ca966ad08df7e8a4ddfab0fb3aa49f96ed6de56e3521347a9ae7" url: "https://pub.dev" source: hosted - version: "1.29.0" + version: "1.30.0" test_api: dependency: transitive description: name: test_api - sha256: "93167629bfc610f71560ab9312acdda4959de4df6fac7492c89ff0d3886f6636" + sha256: "8161c84903fd860b26bfdefb7963b3f0b68fee7adea0f59ef805ecca346f0c7a" url: "https://pub.dev" source: hosted - version: "0.7.9" + version: "0.7.10" test_core: dependency: transitive description: name: test_core - sha256: "394f07d21f0f2255ec9e3989f21e54d3c7dc0e6e9dbce160e5a9c1a6be0e2943" + sha256: "0381bd1585d1a924763c308100f2138205252fb90c9d4eeaf28489ee65ccde51" url: "https://pub.dev" source: hosted - version: "0.6.15" + version: "0.6.16" timezone: dependency: transitive description: @@ -2415,5 +2385,5 @@ packages: source: hosted version: "2.1.0" sdks: - dart: ">=3.10.3 <4.0.0" - flutter: ">=3.38.4" + dart: ">=3.10.0 <4.0.0" + flutter: ">=3.38.0" diff --git a/tiamat/macos/Flutter/Flutter-Debug.xcconfig b/tiamat/macos/Flutter/Flutter-Debug.xcconfig index c2efd0b60..4b81f9b2d 100644 --- a/tiamat/macos/Flutter/Flutter-Debug.xcconfig +++ b/tiamat/macos/Flutter/Flutter-Debug.xcconfig @@ -1 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "ephemeral/Flutter-Generated.xcconfig" diff --git a/tiamat/macos/Flutter/Flutter-Release.xcconfig b/tiamat/macos/Flutter/Flutter-Release.xcconfig index c2efd0b60..5caa9d157 100644 --- a/tiamat/macos/Flutter/Flutter-Release.xcconfig +++ b/tiamat/macos/Flutter/Flutter-Release.xcconfig @@ -1 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "ephemeral/Flutter-Generated.xcconfig" diff --git a/tiamat/macos/Podfile b/tiamat/macos/Podfile new file mode 100644 index 000000000..ff5ddb3b8 --- /dev/null +++ b/tiamat/macos/Podfile @@ -0,0 +1,42 @@ +platform :osx, '10.15' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\"" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_macos_podfile_setup + +target 'Runner' do + use_frameworks! + + flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__)) + target 'RunnerTests' do + inherit! :search_paths + end +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_macos_build_settings(target) + end +end