diff --git a/.metadata b/.metadata index 329f72cae..d044da852 100644 --- a/.metadata +++ b/.metadata @@ -4,7 +4,7 @@ # This file should be version controlled and should not be manually edited. version: - revision: "80c2e84975bbd28ecf5f8d4bd4ca5a2490bfc819" + revision: "dec2ee5c1f98f8e84a7d5380c05eb8a3d0a81668" channel: "stable" project_type: app @@ -13,11 +13,26 @@ project_type: app migration: platforms: - platform: root - create_revision: 80c2e84975bbd28ecf5f8d4bd4ca5a2490bfc819 - base_revision: 80c2e84975bbd28ecf5f8d4bd4ca5a2490bfc819 + create_revision: dec2ee5c1f98f8e84a7d5380c05eb8a3d0a81668 + base_revision: dec2ee5c1f98f8e84a7d5380c05eb8a3d0a81668 - platform: android - create_revision: 80c2e84975bbd28ecf5f8d4bd4ca5a2490bfc819 - base_revision: 80c2e84975bbd28ecf5f8d4bd4ca5a2490bfc819 + create_revision: dec2ee5c1f98f8e84a7d5380c05eb8a3d0a81668 + base_revision: dec2ee5c1f98f8e84a7d5380c05eb8a3d0a81668 + - platform: ios + create_revision: dec2ee5c1f98f8e84a7d5380c05eb8a3d0a81668 + base_revision: dec2ee5c1f98f8e84a7d5380c05eb8a3d0a81668 + - platform: linux + create_revision: dec2ee5c1f98f8e84a7d5380c05eb8a3d0a81668 + base_revision: dec2ee5c1f98f8e84a7d5380c05eb8a3d0a81668 + - platform: macos + create_revision: dec2ee5c1f98f8e84a7d5380c05eb8a3d0a81668 + base_revision: dec2ee5c1f98f8e84a7d5380c05eb8a3d0a81668 + - platform: web + create_revision: dec2ee5c1f98f8e84a7d5380c05eb8a3d0a81668 + base_revision: dec2ee5c1f98f8e84a7d5380c05eb8a3d0a81668 + - platform: windows + create_revision: dec2ee5c1f98f8e84a7d5380c05eb8a3d0a81668 + base_revision: dec2ee5c1f98f8e84a7d5380c05eb8a3d0a81668 # User provided section diff --git a/darwin/OuisyncBackend/.gitignore b/darwin/OuisyncBackend/.gitignore new file mode 100644 index 000000000..0023a5340 --- /dev/null +++ b/darwin/OuisyncBackend/.gitignore @@ -0,0 +1,8 @@ +.DS_Store +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc diff --git a/darwin/OuisyncBackend/Package.swift b/darwin/OuisyncBackend/Package.swift new file mode 100644 index 000000000..86b173c2a --- /dev/null +++ b/darwin/OuisyncBackend/Package.swift @@ -0,0 +1,33 @@ +// swift-tools-version: 5.9 +import PackageDescription + + +/* This package hosts functionality that is shared by the ios and macos versions of the file + provider extension. It is currently used for: + * mapping rust data models to those expected by the platform + * white-label implementation of the file provider(s): because code in extension targets is not + currently importable by tests, our extensions import and rename the class(es) defined here + + Before committing code to this package, consider the following questions: + 1. is the code only useful to our extensions? otherwise it might belong to `OuisyncCommon` (at the + very least as an IPC protocol that calls into the extension that then links with this package) + 2. is the code only useful to our app? otherwise it might belong to the `OuisyncLib` swift + bindings or even into the rust core library */ +let package = Package( + name: "OuisyncBackend", + platforms: [.iOS(.v16), .macOS(.v13)], + products: [ + .library(name: "OuisyncBackend", + targets: ["OuisyncBackend"]), + ], + dependencies: [ + .package(path: "../OuisyncCommon"), + .package(path: "../../ouisync/bindings/swift/OuisyncLib") + ], + targets: [ + .target(name: "OuisyncBackend", + dependencies: [.product(name: "OuisyncCommon", package: "OuisyncCommon"), + .product(name: "OuisyncLib", package: "OuisyncLib")], + path: "Sources"), + ] +) diff --git a/macos/Backend/Anchor.swift b/darwin/OuisyncBackend/Sources/Anchor.swift similarity index 100% rename from macos/Backend/Anchor.swift rename to darwin/OuisyncBackend/Sources/Anchor.swift index e4778ad43..84a9d3f6a 100644 --- a/macos/Backend/Anchor.swift +++ b/darwin/OuisyncBackend/Sources/Anchor.swift @@ -4,9 +4,9 @@ // // Created by Peter Jankuliak on 24/05/2024. // - -import Foundation import FileProvider +import Foundation + extension NSFileProviderSyncAnchor: CustomDebugStringConvertible { public var debugDescription: String { diff --git a/macos/Backend/Debug.swift b/darwin/OuisyncBackend/Sources/Debug.swift similarity index 100% rename from macos/Backend/Debug.swift rename to darwin/OuisyncBackend/Sources/Debug.swift index e794f9d50..8d46c6f5d 100644 --- a/macos/Backend/Debug.swift +++ b/darwin/OuisyncBackend/Sources/Debug.swift @@ -4,9 +4,9 @@ // // Created by Peter Jankuliak on 04/06/2024. // - -import Foundation import FileProvider +import Foundation + extension NSFileProviderItemFields: CustomDebugStringConvertible { static public var debugDescriptions: [(Self, String)] = [ diff --git a/macos/Backend/Enumerator.swift b/darwin/OuisyncBackend/Sources/Enumerator.swift similarity index 99% rename from macos/Backend/Enumerator.swift rename to darwin/OuisyncBackend/Sources/Enumerator.swift index 1ee29de61..7ba4af423 100644 --- a/macos/Backend/Enumerator.swift +++ b/darwin/OuisyncBackend/Sources/Enumerator.swift @@ -4,10 +4,11 @@ // // Created by Peter Jankuliak on 15/03/2024. // - import FileProvider +import OuisyncCommon import OuisyncLib + class Enumerator: NSObject, NSFileProviderEnumerator { private let session: OuisyncSession private let itemId: ItemIdentifier diff --git a/macos/Backend/ExtError.swift b/darwin/OuisyncBackend/Sources/ExtError.swift similarity index 98% rename from macos/Backend/ExtError.swift rename to darwin/OuisyncBackend/Sources/ExtError.swift index 6cd650c92..cdb58986e 100644 --- a/macos/Backend/ExtError.swift +++ b/darwin/OuisyncBackend/Sources/ExtError.swift @@ -4,11 +4,11 @@ // // Created by Peter Jankuliak on 25/03/2024. // - -import Common import FileProvider +import OuisyncCommon import OuisyncLib + class ExtError { static var noSuchItem: NSError { NSError( diff --git a/macos/Backend/Extension+Servicing.swift b/darwin/OuisyncBackend/Sources/Extension+Servicing.swift similarity index 99% rename from macos/Backend/Extension+Servicing.swift rename to darwin/OuisyncBackend/Sources/Extension+Servicing.swift index 1581c8733..1c2e27998 100644 --- a/macos/Backend/Extension+Servicing.swift +++ b/darwin/OuisyncBackend/Sources/Extension+Servicing.swift @@ -4,12 +4,12 @@ // // Created by Peter Jankuliak on 25/03/2024. // - -import Common -import Foundation import FileProvider +import Foundation +import OuisyncCommon import OuisyncLib + extension Extension: NSFileProviderServicing { public func supportedServiceSources(for itemIdentifier: NSFileProviderItemIdentifier, completionHandler: @escaping ([NSFileProviderServiceSource]?, Error?) -> Void) -> Progress { diff --git a/macos/Backend/Extension.swift b/darwin/OuisyncBackend/Sources/Extension.swift similarity index 99% rename from macos/Backend/Extension.swift rename to darwin/OuisyncBackend/Sources/Extension.swift index 47592b16f..1466c6bbf 100644 --- a/macos/Backend/Extension.swift +++ b/darwin/OuisyncBackend/Sources/Extension.swift @@ -4,13 +4,13 @@ // // Created by Peter Jankuliak on 15/03/2024. // - import FileProvider +import Network import OuisyncLib -import System +import OuisyncCommon import OSLog -import Common -import Network +import System + open class Extension: NSObject, NSFileProviderReplicatedExtension { static let WRITE_CHUNK_SIZE: UInt64 = 32768 // TODO: Decide on optimal value @@ -539,7 +539,7 @@ open class Extension: NSObject, NSFileProviderReplicatedExtension { do { try await manager.signalEnumerator(for: .workingSet) } catch let error as NSError { - NSLog("❌ failed to signal working set for \(Common.ouisyncFileProviderDomain): \(error)") + NSLog("❌ failed to signal working set for \(ouisyncFileProviderDomain): \(error)") } } } diff --git a/macos/Backend/Hash.swift b/darwin/OuisyncBackend/Sources/Hash.swift similarity index 100% rename from macos/Backend/Hash.swift rename to darwin/OuisyncBackend/Sources/Hash.swift index e37ebf901..e321db16a 100644 --- a/macos/Backend/Hash.swift +++ b/darwin/OuisyncBackend/Sources/Hash.swift @@ -4,9 +4,9 @@ // // Created by Peter Jankuliak on 10/06/2024. // - import Foundation + struct Hash: Codable, Equatable, CustomDebugStringConvertible { let data: Data diff --git a/macos/Backend/Item.swift b/darwin/OuisyncBackend/Sources/Item.swift similarity index 100% rename from macos/Backend/Item.swift rename to darwin/OuisyncBackend/Sources/Item.swift index 0d66c806a..dafb81bed 100644 --- a/macos/Backend/Item.swift +++ b/darwin/OuisyncBackend/Sources/Item.swift @@ -4,12 +4,12 @@ // // Created by Peter Jankuliak on 15/03/2024. // - import FileProvider -import UniformTypeIdentifiers import MessagePack import OuisyncLib import System +import UniformTypeIdentifiers + enum EntryItem: Hashable, Equatable, CustomDebugStringConvertible { case file(FileItem) diff --git a/macos/Backend/ItemIdentifier.swift b/darwin/OuisyncBackend/Sources/ItemIdentifier.swift similarity index 99% rename from macos/Backend/ItemIdentifier.swift rename to darwin/OuisyncBackend/Sources/ItemIdentifier.swift index 5340f542d..49db4555d 100644 --- a/macos/Backend/ItemIdentifier.swift +++ b/darwin/OuisyncBackend/Sources/ItemIdentifier.swift @@ -4,14 +4,15 @@ // // Created by Peter Jankuliak on 22/05/2024. // - -import Foundation import FileProvider +import Foundation import OuisyncLib import System // for FilePath + typealias RepoName = String + enum ItemIdentifier: CustomDebugStringConvertible, Hashable, Equatable { case rootContainer case trashContainer diff --git a/macos/Backend/Path.swift b/darwin/OuisyncBackend/Sources/Path.swift similarity index 100% rename from macos/Backend/Path.swift rename to darwin/OuisyncBackend/Sources/Path.swift index 394bbab02..a21340782 100644 --- a/macos/Backend/Path.swift +++ b/darwin/OuisyncBackend/Sources/Path.swift @@ -4,10 +4,10 @@ // // Created by Peter Jankuliak on 17/04/2024. // - import Foundation import System + public class Path { public let path: FilePath diff --git a/macos/Backend/Version.swift b/darwin/OuisyncBackend/Sources/Version.swift similarity index 100% rename from macos/Backend/Version.swift rename to darwin/OuisyncBackend/Sources/Version.swift index 6c77eaa46..fde71c4c5 100644 --- a/macos/Backend/Version.swift +++ b/darwin/OuisyncBackend/Sources/Version.swift @@ -4,9 +4,9 @@ // // Created by Peter Jankuliak on 18/06/2024. // - -import Foundation import FileProvider +import Foundation + enum Version: Codable, CustomDebugStringConvertible { case valid(ValidVersion) diff --git a/darwin/OuisyncCommon/.gitignore b/darwin/OuisyncCommon/.gitignore new file mode 100644 index 000000000..0023a5340 --- /dev/null +++ b/darwin/OuisyncCommon/.gitignore @@ -0,0 +1,8 @@ +.DS_Store +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc diff --git a/darwin/OuisyncCommon/Package.swift b/darwin/OuisyncCommon/Package.swift new file mode 100644 index 000000000..e8cdbde54 --- /dev/null +++ b/darwin/OuisyncCommon/Package.swift @@ -0,0 +1,24 @@ +// swift-tools-version: 5.9 +import PackageDescription + + +/* This package hosts functionality that is shared by the ios and macos versions of the client, + regardless of entry point (app vs extension). It is best suited for: + * common configuration options like well known ids and paths + * IPC protocols, shared between providers and consumers + * tools that work around or abstract over operating system behavior + * backports of functionality that is not available on older operating systems + + Intentionally does not link with the rust core library, see `OuisyncBackend` if you need that. */ +let package = Package( + name: "OuisyncCommon", + platforms: [.iOS(.v16), .macOS(.v13)], + products: [ + .library(name: "OuisyncCommon", + targets: ["OuisyncCommon"]), + ], + targets: [ + .target(name: "OuisyncCommon", + path: "Sources"), + ] +) diff --git a/darwin/OuisyncCommon/Sources/Constants.swift b/darwin/OuisyncCommon/Sources/Constants.swift new file mode 100644 index 000000000..eb4c278de --- /dev/null +++ b/darwin/OuisyncCommon/Sources/Constants.swift @@ -0,0 +1,5 @@ +public class Constants { + // TODO: merge the following: + public static let flutterConfigChannel = "org.equalitie.ouisync/native" + public static let flutterForwardingChannel = "org.equalitie.ouisync/backend" +} diff --git a/macos/Common/Directories.swift b/darwin/OuisyncCommon/Sources/Directories.swift similarity index 62% rename from macos/Common/Directories.swift rename to darwin/OuisyncCommon/Sources/Directories.swift index 9701c0584..1a5e2bd7f 100644 --- a/macos/Common/Directories.swift +++ b/darwin/OuisyncCommon/Sources/Directories.swift @@ -7,8 +7,16 @@ import Foundation + +#if os(macOS) +private let appGroup = "5SR9R72Z83.org.equalitie.ouisync" +#else +private let appGroup = "group.org.equalitie" +#endif +private let rootURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: appGroup)! + + public class Directories { - private static let rootURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "5SR9R72Z83.org.equalitie.ouisync")! public static let rootPath = rootURL.path(percentEncoded: false) public static let configsPath = rootPath + "config" public static let logsPath = rootPath + "logs/ouisync.log" diff --git a/macos/Common/FileProviderServiceProtocol.swift b/darwin/OuisyncCommon/Sources/FileProviderServiceProtocol.swift similarity index 99% rename from macos/Common/FileProviderServiceProtocol.swift rename to darwin/OuisyncCommon/Sources/FileProviderServiceProtocol.swift index 90a854dcd..a68364702 100644 --- a/macos/Common/FileProviderServiceProtocol.swift +++ b/darwin/OuisyncCommon/Sources/FileProviderServiceProtocol.swift @@ -22,3 +22,4 @@ public let ouisyncFileProviderDomain = NSFileProviderDomain(identifier: ouisyncF // Used to send notifications from the extension's backend to Flutter. func fromFileProviderToApp(_ message: [UInt8]) } + diff --git a/macos/Backend/Log.swift b/darwin/OuisyncCommon/Sources/Log.swift similarity index 88% rename from macos/Backend/Log.swift rename to darwin/OuisyncCommon/Sources/Log.swift index 39367318e..d39607272 100644 --- a/macos/Backend/Log.swift +++ b/darwin/OuisyncCommon/Sources/Log.swift @@ -4,11 +4,11 @@ // // Created by Peter Jankuliak on 04/06/2024. // - import Foundation -class Log { - enum Level: UInt8 { + +public class Log { + public enum Level: UInt8 { case trace = 0 case info case error @@ -22,7 +22,7 @@ class Log { fileprivate var nextChildId: UInt64 = 0 var selfLevel: Level? = nil - init(_ label: String) { + public init(_ label: String) { self.parent = nil self.label = label self.id = Self.nextRootId @@ -37,22 +37,22 @@ class Log { parent.nextChildId += 1 } - func child(_ label: String) -> Log { + public func child(_ label: String) -> Log { Log(label, self, selfLevel) } @discardableResult - func trace(_ msg: String) -> Log { + public func trace(_ msg: String) -> Log { print(.trace, msg) } @discardableResult - func info(_ msg: String) -> Log { + public func info(_ msg: String) -> Log { print(.info, msg) } @discardableResult - func error(_ msg: String) -> Log { + public func error(_ msg: String) -> Log { print(.error, msg) } @@ -64,7 +64,7 @@ class Log { return self } - func level(_ l: Level) -> Log { + public func level(_ l: Level) -> Log { self.selfLevel = l return self } diff --git a/darwin/README.md b/darwin/README.md new file mode 100644 index 000000000..81dc2951e --- /dev/null +++ b/darwin/README.md @@ -0,0 +1,50 @@ +# duisync-darwin +This folder hosts code specific to deploying the ouisync library to apple devices. + +## Supported platforms +Currently, macOS 11+ and iOS 16+ are supported targets. + +## Requirements +To build, you must have a mac and the following: + +* [xcode](https://apps.apple.com/us/app/xcode/id497799835) 15.2 or above + (earlier versions are not tested) +* xcode command line tools: + `xcode-select --install` +* [rust](https://www.rust-lang.org/): + `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh` +* [flutter](https://docs.flutter.dev/release/archive#stable-channel-macos) +* [cocoapods](https://cocoapods.org/): + `sudo gem install cocoapods` or + `brew install cocoapods` +* an account that is a (paid) member of the + [Apple Developer Program](https://developer.apple.com/programs/enroll/) + WARN: a free account is insufficient to build due to our use of app groups + +## Tips & tricks +* Xcode cannot currently open the same package in multiple windows; as such, + if you work on iOS and macOS at the same time, only the first opened workspace + will be able to access the shared dependencies: `OuisyncCommon`, + `OuisyncBackend` or `OuisyncLib`. +* Your first build will take a long time because it involves cross-compiling + the rust library on all platforms; you can speed things up by editing + `config.sh` from the `OuisyncLib` package dependency and opting for a release + build instead of a (much larger) debug build + +## Troubleshooting +* `Module 'biometric_storage' not found`: You can only build from Xcode by + opening the `.xcworkspace`; the `.xcproject` will leave you unable to load + dependencies; as far as I can tell, this is an + [intentional decision](https://docs.flutter.dev/deployment/ios#review-xcode-project-settings) + made by early flutter devs and one that cannot be (easily) worked around. + If you already opened the workspace, you need to run `pod install` from + either `macos` or `ios` +* `Unable to load contents of file list: 'ouisync-app/macos/Flutter/ephemeral/FlutterInputs.xcfilelist'`: + appears to be a [known issue](https://github.com/flutter/flutter/issues/115804#issuecomment-1324164871) + in Flutter; current workaround is to run `flutter build macos` after checkout + and after every `flutter clean` before building from Xcode +* `Linker command failed with exit code 1 (use -v to see invocation)`: + 9 times out of 10, this means that your ouisync rust framework was not built + correctly: this can either be because you didn't successfully run + `Update rust dependencies` before building, the OuisyncLib build plugin did + not run or you've disabled your current target in `config.sh` diff --git a/ios/Podfile b/ios/Podfile index 531a884fb..62a19d497 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -32,107 +32,36 @@ target 'Runner' do use_modular_headers! flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) - - # Sharing Extension is name of Extension which you created. It is 'Share Extension' and 'Sharing Extension' in example - target 'Share Extension' do + 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 - -# post install post_install do |installer| - # fix xcode 15 DT_TOOLCHAIN_DIR - remove after fix officially - https://github.com/CocoaPods/CocoaPods/issues/12065 - installer.aggregate_targets.each do |target| - target.xcconfigs.each do |variant, xcconfig| - xcconfig_path = target.client_root + target.xcconfig_relative_path(variant) - IO.write(xcconfig_path, IO.read(xcconfig_path).gsub("DT_TOOLCHAIN_DIR", "TOOLCHAIN_DIR")) - end - end - - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - if config.base_configuration_reference.is_a? Xcodeproj::Project::Object::PBXFileReference - xcconfig_path = config.base_configuration_reference.real_path - IO.write(xcconfig_path, IO.read(xcconfig_path).gsub("DT_TOOLCHAIN_DIR", "TOOLCHAIN_DIR")) - end - end - end - - installer.pods_project.targets.each do |target| flutter_additional_ios_build_settings(target) - - # Add the line below - target_is_resource_bundle = target.respond_to?(:product_type) && target.product_type == 'com.apple.product-type.bundle' - target.build_configurations.each do |config| + config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET' - # And lines from here - if target_is_resource_bundle - config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO' - config.build_settings['CODE_SIGNING_REQUIRED'] = 'NO' - config.build_settings['CODE_SIGNING_IDENTITY'] = '-' - config.build_settings['EXPANDED_CODE_SIGN_IDENTITY'] = '-' - end - # to here - - # You can enable the permissions needed here. For example to enable camera - # permission, just remove the `#` character in front so it looks like this: - # - # ## dart: PermissionGroup.camera - # 'PERMISSION_CAMERA=1' - # - # Preprocessor definitions can be found in: https://github.com/Baseflow/flutter-permission-handler/blob/master/permission_handler_apple/ios/Classes/PermissionHandlerEnums.h config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [ '$(inherited)', - - ## dart: PermissionGroup.calendar - # 'PERMISSION_EVENTS=1', - - ## dart: PermissionGroup.reminders - # 'PERMISSION_REMINDERS=1', - - ## dart: PermissionGroup.contacts - # 'PERMISSION_CONTACTS=1', - - ## dart: PermissionGroup.camera + 'PERMISSION_EVENTS=0', + 'PERMISSION_EVENTS_FULL_ACCESS=0', + 'PERMISSION_REMINDERS=0', + 'PERMISSION_CONTACTS=0', 'PERMISSION_CAMERA=1', - - ## dart: PermissionGroup.microphone - # 'PERMISSION_MICROPHONE=1', - - ## dart: PermissionGroup.speech - # 'PERMISSION_SPEECH_RECOGNIZER=1', - - ## dart: PermissionGroup.photos + 'PERMISSION_MICROPHONE=0', + 'PERMISSION_SPEECH_RECOGNIZER=0', 'PERMISSION_PHOTOS=1', - - ## dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse] - # 'PERMISSION_LOCATION=1', - - ## dart: PermissionGroup.notification - # 'PERMISSION_NOTIFICATIONS=1', - - ## dart: PermissionGroup.mediaLibrary - # 'PERMISSION_MEDIA_LIBRARY=1', - - ## dart: PermissionGroup.sensors - # 'PERMISSION_SENSORS=1', - - ## dart: PermissionGroup.bluetooth - # 'PERMISSION_BLUETOOTH=1', - - ## dart: PermissionGroup.appTrackingTransparency - # 'PERMISSION_APP_TRACKING_TRANSPARENCY=1', - - ## dart: PermissionGroup.criticalAlerts - # 'PERMISSION_CRITICAL_ALERTS=1' + 'PERMISSION_LOCATION=0', + 'PERMISSION_LOCATION_WHENINUSE=0', + 'PERMISSION_NOTIFICATIONS=0', + 'PERMISSION_MEDIA_LIBRARY=0', + 'PERMISSION_SENSORS=0', + 'PERMISSION_BLUETOOTH=0', + 'PERMISSION_APP_TRACKING_TRANSPARENCY=0', + 'PERMISSION_CRITICAL_ALERTS=0', + 'PERMISSION_ASSISTANT=0', ] end end diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 39a23b58e..cdbcf1273 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -123,16 +123,16 @@ PODS: - permission_handler_apple (9.3.0): - Flutter - PromisesObjC (2.4.0) - - receive_sharing_intent (1.8.0): + - receive_sharing_intent (1.8.1): - Flutter - - SDWebImage (5.19.7): - - SDWebImage/Core (= 5.19.7) - - SDWebImage/Core (5.19.7) - - Sentry/HybridSDK (8.36.0) - - sentry_flutter (8.9.0): + - SDWebImage (5.20.0): + - SDWebImage/Core (= 5.20.0) + - SDWebImage/Core (5.20.0) + - Sentry/HybridSDK (8.40.1) + - sentry_flutter (8.10.1): - Flutter - FlutterMacOS - - Sentry/HybridSDK (= 8.36.0) + - Sentry/HybridSDK (= 8.40.1) - share_plus (0.0.1): - Flutter - shared_preferences_foundation (0.0.1): @@ -246,7 +246,7 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: biometric_storage: 1400f1382af3a4cc2bf05340e13c3d8de873ceb9 - connectivity_plus: ddd7f30999e1faaef5967c23d5b6d503d10434db + connectivity_plus: 4c41c08fc6d7c91f63bc7aec70ffe3730b04f563 cryptography_flutter: 381bdacc984abcfbe3ca45ef7c76566ff061614c device_info_plus: 97af1d7e84681a90d0693e63169a5d50e0839a0d DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c @@ -256,7 +256,7 @@ SPEC CHECKSUMS: flutter_email_sender: 10a22605f92809a11ef52b2f412db806c6082d40 flutter_file_dialog: 4c014a45b105709a27391e266c277d7e588e9299 flutter_keyboard_visibility: 0339d06371254c3eb25eeb90ba8d17dca8f9c069 - flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be + flutter_secure_storage: d33dac7ae2ea08509be337e775f6b59f1ff45f12 GoogleDataTransport: 6c09b596d841063d76d4288cc2d2f42cc36e1e2a GoogleMLKit: 97ac7af399057e99182ee8edfa8249e3226a4065 GoogleToolboxForMac: d1a2cbf009c453f4d6ded37c105e2f67a32206d8 @@ -272,22 +272,22 @@ SPEC CHECKSUMS: mobile_scanner: 96e91f2e1fb396bb7df8da40429ba8dfad664740 move_to_background: 39a5b79b26d577b0372cbe8a8c55e7aa9fcd3a2d nanopb: 438bc412db1928dac798aa6fd75726007be04262 - network_info_plus: 9d930145451916919786087c4173226363616071 + network_info_plus: 6613d9d7cdeb0e6f366ed4dbe4b3c51c52d567a9 ouisync: 2620ea99b935c285b7383dd4dbd64d37b0445cef - package_info_plus: 58f0028419748fad15bf008b270aaa8e54380b1c + package_info_plus: c0502532a26c7662a62a356cebe2692ec5fe4ec4 path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2 PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 - receive_sharing_intent: df9c334dc9feadcbd3266e5cb49c8443405e1c9f - SDWebImage: 8a6b7b160b4d710e2a22b6900e25301075c34cb3 - Sentry: f8374b5415bc38dfb5645941b3ae31230fbeae57 - sentry_flutter: 0eb93e5279eb41e2392212afe1ccd2fecb4f8cbe - share_plus: 8875f4f2500512ea181eef553c3e27dba5135aad + receive_sharing_intent: 79c848f5b045674ad60b9fea3bafea59962ad2c1 + SDWebImage: 73c6079366fea25fa4bb9640d5fb58f0893facd8 + Sentry: e9215d7b17f7902692b4f8700e061e4f853e3521 + sentry_flutter: 927eed60d66951d1b0f1db37fe94ff5cb7c80231 + share_plus: 8b6f8b3447e494cca5317c8c3073de39b3600d1f shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4 url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe webview_flutter_wkwebview: 0982481e3d9c78fd5c6f62a002fcd24fc791f1e4 -PODFILE CHECKSUM: 53596f9a057e59492780598aacf103e090bdd491 +PODFILE CHECKSUM: 377062468f3b9846d46f4c6fc4fca043e51713b6 -COCOAPODS: 1.15.2 +COCOAPODS: 1.16.2 diff --git a/ios/Runner/Runner.entitlements b/ios/ReplicatedFileProvider/Entitlements.entitlements similarity index 84% rename from ios/Runner/Runner.entitlements rename to ios/ReplicatedFileProvider/Entitlements.entitlements index bddf48e65..db7329635 100644 --- a/ios/Runner/Runner.entitlements +++ b/ios/ReplicatedFileProvider/Entitlements.entitlements @@ -6,5 +6,7 @@ group.org.equalitie + com.apple.security.network.client + diff --git a/ios/ReplicatedFileProvider/EntryPoint.swift b/ios/ReplicatedFileProvider/EntryPoint.swift new file mode 100644 index 000000000..88390fc1b --- /dev/null +++ b/ios/ReplicatedFileProvider/EntryPoint.swift @@ -0,0 +1,4 @@ +import OuisyncBackend + + +final class OuisyncReplicated: Extension {} diff --git a/ios/ReplicatedFileProvider/Info.plist b/ios/ReplicatedFileProvider/Info.plist new file mode 100644 index 000000000..526af6b50 --- /dev/null +++ b/ios/ReplicatedFileProvider/Info.plist @@ -0,0 +1,17 @@ + + + + + NSExtension + + NSExtensionFileProviderDocumentGroup + group.org.equalitie + NSExtensionFileProviderSupportsEnumeration + + NSExtensionPointIdentifier + com.apple.fileprovider-nonui + NSExtensionPrincipalClass + $(PRODUCT_MODULE_NAME).OuisyncReplicated + + + diff --git a/ios/ReplicatedFileProviderUI/Base.lproj/MainInterface.storyboard b/ios/ReplicatedFileProviderUI/Base.lproj/MainInterface.storyboard new file mode 100644 index 000000000..bba4f6337 --- /dev/null +++ b/ios/ReplicatedFileProviderUI/Base.lproj/MainInterface.storyboard @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/ReplicatedFileProviderUI/DocumentActionViewController.swift b/ios/ReplicatedFileProviderUI/DocumentActionViewController.swift new file mode 100644 index 000000000..a21cfe9f3 --- /dev/null +++ b/ios/ReplicatedFileProviderUI/DocumentActionViewController.swift @@ -0,0 +1,27 @@ +import UIKit +import FileProviderUI + + +class DocumentActionViewController: FPUIActionExtensionViewController { + @IBOutlet weak var identifierLabel: UILabel! + @IBOutlet weak var actionTypeLabel: UILabel! + + override func prepare(forAction actionIdentifier: String, itemIdentifiers: [NSFileProviderItemIdentifier]) { + identifierLabel?.text = actionIdentifier + actionTypeLabel?.text = "Custom action" + } + + override func prepare(forError error: Error) { + identifierLabel?.text = error.localizedDescription + actionTypeLabel?.text = "Authenticate" + } + + @IBAction func doneButtonTapped(_ sender: Any) { + // Perform the action and call the completion block. If an unrecoverable error occurs you must still call the completion block with an error. Use the error code FPUIExtensionErrorCode.failed to signal the failure. + extensionContext.completeRequest() + } + + @IBAction func cancelButtonTapped(_ sender: Any) { + extensionContext.cancelRequest(withError: NSError(domain: FPUIErrorDomain, code: Int(FPUIExtensionErrorCode.userCancelled.rawValue), userInfo: nil)) + } +} diff --git a/ios/ReplicatedFileProviderUI/Info.plist b/ios/ReplicatedFileProviderUI/Info.plist new file mode 100644 index 000000000..ff193b6c1 --- /dev/null +++ b/ios/ReplicatedFileProviderUI/Info.plist @@ -0,0 +1,24 @@ + + + + + NSExtension + + NSExtensionFileProviderActions + + + NSExtensionFileProviderActionActivationRule + TRUEPREDICATE + NSExtensionFileProviderActionIdentifier + com.mycompany.FileProviderUI.CustomAction + NSExtensionFileProviderActionName + Custom Action + + + NSExtensionMainStoryboard + MainInterface + NSExtensionPointIdentifier + com.apple.fileprovider-actionsui + + + diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 5e5db03ff..3c3e982f7 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -3,41 +3,64 @@ archiveVersion = 1; classes = { }; - objectVersion = 54; + objectVersion = 60; objects = { /* Begin PBXBuildFile section */ + 1358328586F7CE67674C9DC2 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA915540F9BA6D9CE9A4FB06 /* Pods_Runner.framework */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 1786326B2D0200E4000BC948 /* OuisyncCommon in Frameworks */ = {isa = PBXBuildFile; productRef = 1786326A2D0200E4000BC948 /* OuisyncCommon */; }; + 17B3F0C32D02049D00F0AF99 /* FileProviderProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17B3F0C22D02049D00F0AF99 /* FileProviderProxy.swift */; }; + 17B3F0CC2D0210A400F0AF99 /* UniformTypeIdentifiers.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17B3F0CB2D0210A400F0AF99 /* UniformTypeIdentifiers.framework */; }; + 17B3F0CF2D0210A400F0AF99 /* EntryPoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17B3F0CE2D0210A400F0AF99 /* EntryPoint.swift */; }; + 17B3F0DD2D0210A500F0AF99 /* DocumentActionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17B3F0DC2D0210A500F0AF99 /* DocumentActionViewController.swift */; }; + 17B3F0E02D0210A500F0AF99 /* MainInterface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 17B3F0DE2D0210A500F0AF99 /* MainInterface.storyboard */; }; + 17B3F0E42D0210A500F0AF99 /* ReplicatedFileProviderUI.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 17B3F0DA2D0210A500F0AF99 /* ReplicatedFileProviderUI.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 17B3F0E72D0210A500F0AF99 /* ReplicatedFileProvider.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 17B3F0C92D0210A400F0AF99 /* ReplicatedFileProvider.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 17B3F0F22D0210F200F0AF99 /* OuisyncBackend in Frameworks */ = {isa = PBXBuildFile; productRef = 17B3F0F12D0210F200F0AF99 /* OuisyncBackend */; }; + 17B3F0F42D02137A00F0AF99 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17B3F0F32D02137A00F0AF99 /* SystemConfiguration.framework */; }; + 331C808B294A63AB00263BE5 /* Example.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* Example.swift */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; - 6EEBA93DB53781AC8F5BD58D /* Pods_Share_Extension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9C77A6D235DABD04434A88B1 /* Pods_Share_Extension.framework */; }; - 739CD7816BC6069C2999E468 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B71C8A5ACA1C14CB5A974A8 /* Pods_Runner.framework */; }; + 4F8A21E996C34E819E8BDBC8 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 24EDE1E101A181812C4BAEA7 /* Pods_RunnerTests.framework */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; - 76FC22242930801400A10444 /* ShareViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76FC22232930801400A10444 /* ShareViewController.swift */; }; - 76FC22272930801400A10444 /* MainInterface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 76FC22252930801400A10444 /* MainInterface.storyboard */; }; - 76FC222B2930801400A10444 /* Share Extension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 76FC22212930801300A10444 /* Share Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 76FC22292930801400A10444 /* PBXContainerItemProxy */ = { + 17B3F0E22D0210A500F0AF99 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 97C146E61CF9000F007C117D /* Project object */; proxyType = 1; - remoteGlobalIDString = 76FC22202930801300A10444; - remoteInfo = "Share Extension"; + remoteGlobalIDString = 17B3F0D92D0210A500F0AF99; + remoteInfo = ReplicatedFileProviderUI; + }; + 17B3F0E52D0210A500F0AF99 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = 17B3F0C82D0210A400F0AF99; + remoteInfo = ReplicatedFileProvider; + }; + 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = 97C146ED1CF9000F007C117D; + remoteInfo = Runner; }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ - 76D2E19C29304DE100014340 /* Embed Foundation Extensions */ = { + 17B3F0F02D0210A500F0AF99 /* Embed Foundation Extensions */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = ""; dstSubfolderSpec = 13; files = ( - 76FC222B2930801400A10444 /* Share Extension.appex in Embed Foundation Extensions */, + 17B3F0E72D0210A500F0AF99 /* ReplicatedFileProvider.appex in Embed Foundation Extensions */, + 17B3F0E42D0210A500F0AF99 /* ReplicatedFileProviderUI.appex in Embed Foundation Extensions */, ); name = "Embed Foundation Extensions"; runOnlyForDeploymentPostprocessing = 0; @@ -57,38 +80,56 @@ /* Begin PBXFileReference section */ 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; - 1D416DCED1EF02DEFA973AFE /* 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 = ""; }; - 2F6F0F46935E6631586B4DCF /* Pods-Share Extension.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Share Extension.profile.xcconfig"; path = "Target Support Files/Pods-Share Extension/Pods-Share Extension.profile.xcconfig"; sourceTree = ""; }; + 17B3F0C22D02049D00F0AF99 /* FileProviderProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileProviderProxy.swift; sourceTree = ""; }; + 17B3F0C42D020E8E00F0AF99 /* Entitlements.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Entitlements.entitlements; sourceTree = ""; }; + 17B3F0C92D0210A400F0AF99 /* ReplicatedFileProvider.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = ReplicatedFileProvider.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + 17B3F0CB2D0210A400F0AF99 /* UniformTypeIdentifiers.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UniformTypeIdentifiers.framework; path = System/Library/Frameworks/UniformTypeIdentifiers.framework; sourceTree = SDKROOT; }; + 17B3F0CE2D0210A400F0AF99 /* EntryPoint.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EntryPoint.swift; sourceTree = ""; }; + 17B3F0D42D0210A400F0AF99 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 17B3F0D52D0210A400F0AF99 /* Entitlements.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Entitlements.entitlements; sourceTree = ""; }; + 17B3F0DA2D0210A500F0AF99 /* ReplicatedFileProviderUI.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = ReplicatedFileProviderUI.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + 17B3F0DC2D0210A500F0AF99 /* DocumentActionViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DocumentActionViewController.swift; sourceTree = ""; }; + 17B3F0DF2D0210A500F0AF99 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/MainInterface.storyboard; sourceTree = ""; }; + 17B3F0E12D0210A500F0AF99 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 17B3F0F32D02137A00F0AF99 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; + 24EDE1E101A181812C4BAEA7 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 331C807B294A618700263BE5 /* Example.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Example.swift; sourceTree = ""; }; + 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 516C0A6FD747A8DDDF98173D /* Pods-Share Extension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Share Extension.debug.xcconfig"; path = "Target Support Files/Pods-Share Extension/Pods-Share Extension.debug.xcconfig"; sourceTree = ""; }; - 6B71C8A5ACA1C14CB5A974A8 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 400B203306580BAC59ACB7B5 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; + 5ABB0F8D0C4E568686A26280 /* 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 = ""; }; + 70A004C6B5306E3C68431B35 /* 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 = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 7691F83E29345ED900106DA6 /* Share Extension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "Share Extension.entitlements"; sourceTree = ""; }; - 7691F83F29345F1700106DA6 /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = ""; }; - 76FC22212930801300A10444 /* Share Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "Share Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; - 76FC22232930801400A10444 /* ShareViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareViewController.swift; sourceTree = ""; }; - 76FC22262930801400A10444 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/MainInterface.storyboard; sourceTree = ""; }; - 76FC22282930801400A10444 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; - 7F6A79E8F6D73BDA4399A093 /* 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 = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; - 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Ouisync.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Ouisync.app; sourceTree = BUILT_PRODUCTS_DIR; }; 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 9C77A6D235DABD04434A88B1 /* Pods_Share_Extension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Share_Extension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D2093B95CFE08BE170F106AE /* 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 = ""; }; - F80AC09E96D6220525D2A768 /* Pods-Share Extension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Share Extension.release.xcconfig"; path = "Target Support Files/Pods-Share Extension/Pods-Share Extension.release.xcconfig"; sourceTree = ""; }; + 9DAD1846D99AE9187785705F /* 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 = ""; }; + D66AF5D17D4EAFAEC48D4E09 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; + DA915540F9BA6D9CE9A4FB06 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E18D99B1834014A862EDBE9B /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 76FC221E2930801300A10444 /* Frameworks */ = { + 17B3F0C62D0210A400F0AF99 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 17B3F0F22D0210F200F0AF99 /* OuisyncBackend in Frameworks */, + 17B3F0F42D02137A00F0AF99 /* SystemConfiguration.framework in Frameworks */, + 17B3F0CC2D0210A400F0AF99 /* UniformTypeIdentifiers.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 17B3F0D72D0210A500F0AF99 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 6EEBA93DB53781AC8F5BD58D /* Pods_Share_Extension.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -96,33 +137,70 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 739CD7816BC6069C2999E468 /* Pods_Runner.framework in Frameworks */, + 1786326B2D0200E4000BC948 /* OuisyncCommon in Frameworks */, + 1358328586F7CE67674C9DC2 /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 98B747CEE464E14D4941B291 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 4F8A21E996C34E819E8BDBC8 /* Pods_RunnerTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 76FC22222930801300A10444 /* Share Extension */ = { + 17B3F0CA2D0210A400F0AF99 /* Frameworks */ = { isa = PBXGroup; children = ( - 7691F83E29345ED900106DA6 /* Share Extension.entitlements */, - 76FC22232930801400A10444 /* ShareViewController.swift */, - 76FC22252930801400A10444 /* MainInterface.storyboard */, - 76FC22282930801400A10444 /* Info.plist */, + 17B3F0F32D02137A00F0AF99 /* SystemConfiguration.framework */, + 17B3F0CB2D0210A400F0AF99 /* UniformTypeIdentifiers.framework */, + DA915540F9BA6D9CE9A4FB06 /* Pods_Runner.framework */, + 24EDE1E101A181812C4BAEA7 /* Pods_RunnerTests.framework */, ); - path = "Share Extension"; + name = Frameworks; sourceTree = ""; }; - 80844B3DE016D434FD5B03F4 /* Pods */ = { + 17B3F0CD2D0210A400F0AF99 /* ReplicatedFileProvider */ = { isa = PBXGroup; children = ( - 7F6A79E8F6D73BDA4399A093 /* Pods-Runner.debug.xcconfig */, - D2093B95CFE08BE170F106AE /* Pods-Runner.release.xcconfig */, - 1D416DCED1EF02DEFA973AFE /* Pods-Runner.profile.xcconfig */, - 516C0A6FD747A8DDDF98173D /* Pods-Share Extension.debug.xcconfig */, - F80AC09E96D6220525D2A768 /* Pods-Share Extension.release.xcconfig */, - 2F6F0F46935E6631586B4DCF /* Pods-Share Extension.profile.xcconfig */, + 17B3F0D42D0210A400F0AF99 /* Info.plist */, + 17B3F0D52D0210A400F0AF99 /* Entitlements.entitlements */, + 17B3F0CE2D0210A400F0AF99 /* EntryPoint.swift */, + ); + path = ReplicatedFileProvider; + sourceTree = ""; + }; + 17B3F0DB2D0210A500F0AF99 /* ReplicatedFileProviderUI */ = { + isa = PBXGroup; + children = ( + 17B3F0E12D0210A500F0AF99 /* Info.plist */, + 17B3F0DE2D0210A500F0AF99 /* MainInterface.storyboard */, + 17B3F0DC2D0210A500F0AF99 /* DocumentActionViewController.swift */, + ); + path = ReplicatedFileProviderUI; + sourceTree = ""; + }; + 331C8082294A63A400263BE5 /* Tests */ = { + isa = PBXGroup; + children = ( + 331C807B294A618700263BE5 /* Example.swift */, + ); + path = Tests; + sourceTree = ""; + }; + 47558C0FAFEC00D4E85831A2 /* Pods */ = { + isa = PBXGroup; + children = ( + 70A004C6B5306E3C68431B35 /* Pods-Runner.debug.xcconfig */, + 9DAD1846D99AE9187785705F /* Pods-Runner.release.xcconfig */, + 5ABB0F8D0C4E568686A26280 /* Pods-Runner.profile.xcconfig */, + 400B203306580BAC59ACB7B5 /* Pods-RunnerTests.debug.xcconfig */, + E18D99B1834014A862EDBE9B /* Pods-RunnerTests.release.xcconfig */, + D66AF5D17D4EAFAEC48D4E09 /* Pods-RunnerTests.profile.xcconfig */, ); path = Pods; sourceTree = ""; @@ -133,6 +211,7 @@ 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 9740EEB21CF90195004384FC /* Debug.xcconfig */, 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, ); name = Flutter; sourceTree = ""; @@ -142,18 +221,22 @@ children = ( 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, - 76FC22222930801300A10444 /* Share Extension */, + 17B3F0CD2D0210A400F0AF99 /* ReplicatedFileProvider */, + 17B3F0DB2D0210A500F0AF99 /* ReplicatedFileProviderUI */, + 17B3F0CA2D0210A400F0AF99 /* Frameworks */, 97C146EF1CF9000F007C117D /* Products */, - 80844B3DE016D434FD5B03F4 /* Pods */, - A7E7EE1CFB27C666D58B473F /* Frameworks */, + 331C8082294A63A400263BE5 /* Tests */, + 47558C0FAFEC00D4E85831A2 /* Pods */, ); sourceTree = ""; }; 97C146EF1CF9000F007C117D /* Products */ = { isa = PBXGroup; children = ( - 97C146EE1CF9000F007C117D /* Runner.app */, - 76FC22212930801300A10444 /* Share Extension.appex */, + 97C146EE1CF9000F007C117D /* Ouisync.app */, + 331C8081294A63A400263BE5 /* RunnerTests.xctest */, + 17B3F0C92D0210A400F0AF99 /* ReplicatedFileProvider.appex */, + 17B3F0DA2D0210A500F0AF99 /* ReplicatedFileProviderUI.appex */, ); name = Products; sourceTree = ""; @@ -161,73 +244,106 @@ 97C146F01CF9000F007C117D /* Runner */ = { isa = PBXGroup; children = ( - 7691F83F29345F1700106DA6 /* Runner.entitlements */, - 97C146FA1CF9000F007C117D /* Main.storyboard */, 97C146FD1CF9000F007C117D /* Assets.xcassets */, - 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, 97C147021CF9000F007C117D /* Info.plist */, + 17B3F0C42D020E8E00F0AF99 /* Entitlements.entitlements */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 17B3F0C22D02049D00F0AF99 /* FileProviderProxy.swift */, + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, - 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, ); path = Runner; sourceTree = ""; }; - A7E7EE1CFB27C666D58B473F /* Frameworks */ = { - isa = PBXGroup; - children = ( - 6B71C8A5ACA1C14CB5A974A8 /* Pods_Runner.framework */, - 9C77A6D235DABD04434A88B1 /* Pods_Share_Extension.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 76FC22202930801300A10444 /* Share Extension */ = { + 17B3F0C82D0210A400F0AF99 /* ReplicatedFileProvider */ = { + isa = PBXNativeTarget; + buildConfigurationList = 17B3F0EC2D0210A500F0AF99 /* Build configuration list for PBXNativeTarget "ReplicatedFileProvider" */; + buildPhases = ( + 17B3F0C52D0210A400F0AF99 /* Sources */, + 17B3F0C62D0210A400F0AF99 /* Frameworks */, + 17B3F0C72D0210A400F0AF99 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ReplicatedFileProvider; + packageProductDependencies = ( + 17B3F0F12D0210F200F0AF99 /* OuisyncBackend */, + ); + productName = ReplicatedFileProvider; + productReference = 17B3F0C92D0210A400F0AF99 /* ReplicatedFileProvider.appex */; + productType = "com.apple.product-type.app-extension"; + }; + 17B3F0D92D0210A500F0AF99 /* ReplicatedFileProviderUI */ = { isa = PBXNativeTarget; - buildConfigurationList = 76FC22382930801400A10444 /* Build configuration list for PBXNativeTarget "Share Extension" */; + buildConfigurationList = 17B3F0E82D0210A500F0AF99 /* Build configuration list for PBXNativeTarget "ReplicatedFileProviderUI" */; buildPhases = ( - C970A7B8E43BC24DA39ADD9D /* [CP] Check Pods Manifest.lock */, - 76FC221D2930801300A10444 /* Sources */, - 76FC221E2930801300A10444 /* Frameworks */, - 76FC221F2930801300A10444 /* Resources */, + 17B3F0D62D0210A500F0AF99 /* Sources */, + 17B3F0D72D0210A500F0AF99 /* Frameworks */, + 17B3F0D82D0210A500F0AF99 /* Resources */, ); buildRules = ( ); dependencies = ( ); - name = "Share Extension"; - productName = "Share Extension"; - productReference = 76FC22212930801300A10444 /* Share Extension.appex */; + name = ReplicatedFileProviderUI; + productName = ReplicatedFileProviderUI; + productReference = 17B3F0DA2D0210A500F0AF99 /* ReplicatedFileProviderUI.appex */; productType = "com.apple.product-type.app-extension"; }; + 331C8080294A63A400263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 61DF63CE4E667B0E37BD6BEB /* [CP] Check Pods Manifest.lock */, + 331C807D294A63A400263BE5 /* Sources */, + 331C807F294A63A400263BE5 /* Resources */, + 98B747CEE464E14D4941B291 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 331C8086294A63A400263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; 97C146ED1CF9000F007C117D /* Runner */ = { isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - B9CC1C97C05623287ECEBCD9 /* [CP] Check Pods Manifest.lock */, - 34F6B19A75C065FCD3B35683 /* Firebase Setup */, - 76D2E19C29304DE100014340 /* Embed Foundation Extensions */, + 3BCE7A26BE4C6A7CA75B31CE /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, + 17B3F0F02D0210A500F0AF99 /* Embed Foundation Extensions */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - A0F4870E92A230E1C57CB095 /* [CP] Embed Pods Frameworks */, - 00FFD2754B1485BCC5F63B0E /* [CP] Copy Pods Resources */, + 8524D316468A9B1C105F3B40 /* [CP] Embed Pods Frameworks */, + F9F247728E9688B1B8DAEA16 /* [CP] Copy Pods Resources */, ); buildRules = ( ); dependencies = ( - 76FC222A2930801400A10444 /* PBXTargetDependency */, + 17B3F0E32D0210A500F0AF99 /* PBXTargetDependency */, + 17B3F0E62D0210A500F0AF99 /* PBXTargetDependency */, ); name = Runner; + packageProductDependencies = ( + 1786326A2D0200E4000BC948 /* OuisyncCommon */, + ); productName = Runner; - productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productReference = 97C146EE1CF9000F007C117D /* Ouisync.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ @@ -236,12 +352,20 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 1410; - LastUpgradeCheck = 1510; + BuildIndependentTargetsInParallel = YES; + LastSwiftUpdateCheck = 1520; + LastUpgradeCheck = 1520; ORGANIZATIONNAME = ""; TargetAttributes = { - 76FC22202930801300A10444 = { - CreatedOnToolsVersion = 14.1; + 17B3F0C82D0210A400F0AF99 = { + CreatedOnToolsVersion = 15.2; + }; + 17B3F0D92D0210A500F0AF99 = { + CreatedOnToolsVersion = 15.2; + }; + 331C8080294A63A400263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 97C146ED1CF9000F007C117D; }; 97C146ED1CF9000F007C117D = { CreatedOnToolsVersion = 7.3.1; @@ -258,22 +382,43 @@ Base, ); mainGroup = 97C146E51CF9000F007C117D; + packageReferences = ( + 178632682D0200CD000BC948 /* XCLocalSwiftPackageReference "../darwin/OuisyncBackend" */, + 178632692D0200E4000BC948 /* XCLocalSwiftPackageReference "../darwin/OuisyncCommon" */, + 1786326C2D0200FD000BC948 /* XCLocalSwiftPackageReference "../ouisync/bindings/swift/OuisyncLib" */, + ); productRefGroup = 97C146EF1CF9000F007C117D /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( 97C146ED1CF9000F007C117D /* Runner */, - 76FC22202930801300A10444 /* Share Extension */, + 331C8080294A63A400263BE5 /* RunnerTests */, + 17B3F0C82D0210A400F0AF99 /* ReplicatedFileProvider */, + 17B3F0D92D0210A500F0AF99 /* ReplicatedFileProviderUI */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 76FC221F2930801300A10444 /* Resources */ = { + 17B3F0C72D0210A400F0AF99 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 17B3F0D82D0210A500F0AF99 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 17B3F0E02D0210A500F0AF99 /* MainInterface.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 331C807F294A63A400263BE5 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 76FC22272930801400A10444 /* MainInterface.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -291,24 +436,23 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 00FFD2754B1485BCC5F63B0E /* [CP] Copy Pods Resources */ = { + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", + inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); - name = "[CP] Copy Pods Resources"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", + name = "Thin Binary"; + outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; - showEnvVarsInLog = 0; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; - 34F6B19A75C065FCD3B35683 /* Firebase Setup */ = { + 3BCE7A26BE4C6A7CA75B31CE /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -316,48 +460,43 @@ inputFileListPaths = ( ); inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", ); - name = "Firebase Setup"; + name = "[CP] Check Pods Manifest.lock"; outputFileListPaths = ( ); outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "if [ \"$CONFIGURATION\" == \"Debug-analytics\" ] || [ \"$CONFIGURATION\" == \"Release-analytics\" ]; then\n cp Runner/analytics/GoogleService-Info.plist Runner/GoogleService-Info.plist\nelif [ \"$CONFIGURATION\" == \"Debug-development\" ] || [ \"$CONFIGURATION\" == \"Release-development\" ]; then\n cp Runner/development/GoogleService-Info.plist Runner/GoogleService-Info.plist\nfi\n\n"; + 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; }; - 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + 61DF63CE4E667B0E37BD6BEB /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); - inputPaths = ( - "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", - ); - name = "Thin Binary"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin\n"; - }; - 9740EEB61CF901F6004384FC /* Run Script */ = { - isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; - buildActionMask = 2147483647; - files = ( + inputFileListPaths = ( ); inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( ); - name = "Run Script"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build\n"; + 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; }; - A0F4870E92A230E1C57CB095 /* [CP] Embed Pods Frameworks */ = { + 8524D316468A9B1C105F3B40 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -374,58 +513,62 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - B9CC1C97C05623287ECEBCD9 /* [CP] Check Pods Manifest.lock */ = { + 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); - inputFileListPaths = ( - ); inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( ); + name = "Run Script"; 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; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build\n"; }; - C970A7B8E43BC24DA39ADD9D /* [CP] Check Pods Manifest.lock */ = { + F9F247728E9688B1B8DAEA16 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Copy Pods Resources"; outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Share Extension-checkManifestLockResult.txt", + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", ); 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"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 76FC221D2930801300A10444 /* Sources */ = { + 17B3F0C52D0210A400F0AF99 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 17B3F0CF2D0210A400F0AF99 /* EntryPoint.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 17B3F0D62D0210A500F0AF99 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 76FC22242930801400A10444 /* ShareViewController.swift in Sources */, + 17B3F0DD2D0210A500F0AF99 /* DocumentActionViewController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 331C807D294A63A400263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C808B294A63AB00263BE5 /* Example.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -435,24 +578,35 @@ files = ( 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + 17B3F0C32D02049D00F0AF99 /* FileProviderProxy.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 76FC222A2930801400A10444 /* PBXTargetDependency */ = { + 17B3F0E32D0210A500F0AF99 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = 76FC22202930801300A10444 /* Share Extension */; - targetProxy = 76FC22292930801400A10444 /* PBXContainerItemProxy */; + target = 17B3F0D92D0210A500F0AF99 /* ReplicatedFileProviderUI */; + targetProxy = 17B3F0E22D0210A500F0AF99 /* PBXContainerItemProxy */; + }; + 17B3F0E62D0210A500F0AF99 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 17B3F0C82D0210A400F0AF99 /* ReplicatedFileProvider */; + targetProxy = 17B3F0E52D0210A500F0AF99 /* PBXContainerItemProxy */; + }; + 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 97C146ED1CF9000F007C117D /* Runner */; + targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ - 76FC22252930801400A10444 /* MainInterface.storyboard */ = { + 17B3F0DE2D0210A500F0AF99 /* MainInterface.storyboard */ = { isa = PBXVariantGroup; children = ( - 76FC22262930801400A10444 /* Base */, + 17B3F0DF2D0210A500F0AF99 /* Base */, ); name = MainInterface.storyboard; sourceTree = ""; @@ -476,10 +630,231 @@ /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ + 17B3F0E92D0210A500F0AF99 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 5SR9R72Z83; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = ReplicatedFileProviderUI/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = ReplicatedFileProviderUI; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.equalitie.ouisync.ReplicatedFileProviderUI; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 17B3F0EA2D0210A500F0AF99 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 5SR9R72Z83; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = ReplicatedFileProviderUI/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = ReplicatedFileProviderUI; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.equalitie.ouisync.ReplicatedFileProviderUI; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_EMIT_LOC_STRINGS = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 17B3F0EB2D0210A500F0AF99 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 5SR9R72Z83; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = ReplicatedFileProviderUI/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = ReplicatedFileProviderUI; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.equalitie.ouisync.ReplicatedFileProviderUI; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_EMIT_LOC_STRINGS = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Profile; + }; + 17B3F0ED2D0210A500F0AF99 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = ReplicatedFileProvider/Entitlements.entitlements; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 5SR9R72Z83; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = ReplicatedFileProvider/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = ReplicatedFileProvider; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.equalitie.ouisync.ReplicatedFileProvider; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 17B3F0EE2D0210A500F0AF99 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = ReplicatedFileProvider/Entitlements.entitlements; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 5SR9R72Z83; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = ReplicatedFileProvider/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = ReplicatedFileProvider; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.equalitie.ouisync.ReplicatedFileProvider; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_EMIT_LOC_STRINGS = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 17B3F0EF2D0210A500F0AF99 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = ReplicatedFileProvider/Entitlements.entitlements; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 5SR9R72Z83; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = ReplicatedFileProvider/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = ReplicatedFileProvider; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.equalitie.ouisync.ReplicatedFileProvider; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_EMIT_LOC_STRINGS = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Profile; + }; 249021D3217E4FDB00AE95B9 /* Profile */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB31CF90195004384FC /* Generated.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; @@ -507,9 +882,11 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -518,10 +895,12 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + MARKETING_VERSION = "$(FLUTTER_BUILD_NAME)"; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; }; @@ -529,16 +908,14 @@ }; 249021D4217E4FDB00AE95B9 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + baseConfigurationReference = 5ABB0F8D0C4E568686A26280 /* Pods-Runner.profile.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; + CODE_SIGN_ENTITLEMENTS = Runner/Entitlements.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - CUSTOM_GROUP_ID = group.org.equalitie.ouisync; DEVELOPMENT_TEAM = 5SR9R72Z83; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; @@ -549,134 +926,83 @@ "@executable_path/Frameworks", ); PRODUCT_BUNDLE_IDENTIFIER = org.equalitie.ouisync; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_NAME = Ouisync; PROVISIONING_PROFILE_SPECIFIER = ""; - STRIP_INSTALLED_PRODUCT = NO; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; - SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; }; name = Profile; }; - 76FC222C2930801400A10444 /* Debug */ = { + 331C8088294A63A400263BE5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 516C0A6FD747A8DDDF98173D /* Pods-Share Extension.debug.xcconfig */; + baseConfigurationReference = 400B203306580BAC59ACB7B5 /* Pods-RunnerTests.debug.xcconfig */; buildSettings = { - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = "Share Extension/Share Extension.entitlements"; + BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - CUSTOM_GROUP_ID = group.org.equalitie.ouisync; DEVELOPMENT_TEAM = 5SR9R72Z83; - GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = "Share Extension/Info.plist"; - INFOPLIST_KEY_CFBundleDisplayName = "Share Extension"; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - MARKETING_VERSION = 1.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = "org.equalitie.ouisync.share-extension"; + PRODUCT_BUNDLE_IDENTIFIER = org.equalitie.ouisync.Tests; PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; }; name = Debug; }; - 76FC222D2930801400A10444 /* Release */ = { + 331C8089294A63A400263BE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F80AC09E96D6220525D2A768 /* Pods-Share Extension.release.xcconfig */; + baseConfigurationReference = E18D99B1834014A862EDBE9B /* Pods-RunnerTests.release.xcconfig */; buildSettings = { - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = "Share Extension/Share Extension.entitlements"; + BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - CUSTOM_GROUP_ID = group.org.equalitie.ouisync; DEVELOPMENT_TEAM = 5SR9R72Z83; - GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = "Share Extension/Info.plist"; - INFOPLIST_KEY_CFBundleDisplayName = "Share Extension"; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - MARKETING_VERSION = 1.0; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = "org.equalitie.ouisync.share-extension"; + PRODUCT_BUNDLE_IDENTIFIER = org.equalitie.ouisync.Tests; PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_VERSION = 5.0; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; }; name = Release; }; - 76FC222E2930801400A10444 /* Profile */ = { + 331C808A294A63A400263BE5 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2F6F0F46935E6631586B4DCF /* Pods-Share Extension.profile.xcconfig */; + baseConfigurationReference = D66AF5D17D4EAFAEC48D4E09 /* Pods-RunnerTests.profile.xcconfig */; buildSettings = { - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_ENTITLEMENTS = "Share Extension/Share Extension.entitlements"; + BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - CUSTOM_GROUP_ID = group.org.equalitie.ouisync; DEVELOPMENT_TEAM = 5SR9R72Z83; - GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = "Share Extension/Info.plist"; - INFOPLIST_KEY_CFBundleDisplayName = "Share Extension"; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@executable_path/../../Frameworks", - ); - MARKETING_VERSION = 1.0; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = "org.equalitie.ouisync.share-extension"; + PRODUCT_BUNDLE_IDENTIFIER = org.equalitie.ouisync.Tests; PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_VERSION = 5.0; + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; + SUPPORTS_MACCATALYST = NO; + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; }; name = Profile; }; 97C147031CF9000F007C117D /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB31CF90195004384FC /* Generated.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; @@ -704,9 +1030,11 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -721,18 +1049,22 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + MARKETING_VERSION = "$(FLUTTER_BUILD_NAME)"; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; 97C147041CF9000F007C117D /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB31CF90195004384FC /* Generated.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; @@ -760,9 +1092,11 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -771,12 +1105,14 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + MARKETING_VERSION = "$(FLUTTER_BUILD_NAME)"; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; }; @@ -784,16 +1120,14 @@ }; 97C147061CF9000F007C117D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + baseConfigurationReference = 70A004C6B5306E3C68431B35 /* Pods-Runner.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; + CODE_SIGN_ENTITLEMENTS = Runner/Entitlements.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - CUSTOM_GROUP_ID = group.org.equalitie.ouisync; DEVELOPMENT_TEAM = 5SR9R72Z83; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; @@ -804,15 +1138,14 @@ "@executable_path/Frameworks", ); PRODUCT_BUNDLE_IDENTIFIER = org.equalitie.ouisync; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_NAME = Ouisync; PROVISIONING_PROFILE_SPECIFIER = ""; - STRIP_INSTALLED_PRODUCT = NO; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; }; @@ -820,16 +1153,14 @@ }; 97C147071CF9000F007C117D /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + baseConfigurationReference = 9DAD1846D99AE9187785705F /* Pods-Runner.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; + CODE_SIGN_ENTITLEMENTS = Runner/Entitlements.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - CUSTOM_GROUP_ID = group.org.equalitie.ouisync; DEVELOPMENT_TEAM = 5SR9R72Z83; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; @@ -840,14 +1171,13 @@ "@executable_path/Frameworks", ); PRODUCT_BUNDLE_IDENTIFIER = org.equalitie.ouisync; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_NAME = Ouisync; PROVISIONING_PROFILE_SPECIFIER = ""; - STRIP_INSTALLED_PRODUCT = NO; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTS_MACCATALYST = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; + SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; - SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; }; @@ -856,12 +1186,32 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 76FC22382930801400A10444 /* Build configuration list for PBXNativeTarget "Share Extension" */ = { + 17B3F0E82D0210A500F0AF99 /* Build configuration list for PBXNativeTarget "ReplicatedFileProviderUI" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 17B3F0E92D0210A500F0AF99 /* Debug */, + 17B3F0EA2D0210A500F0AF99 /* Release */, + 17B3F0EB2D0210A500F0AF99 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 17B3F0EC2D0210A500F0AF99 /* Build configuration list for PBXNativeTarget "ReplicatedFileProvider" */ = { isa = XCConfigurationList; buildConfigurations = ( - 76FC222C2930801400A10444 /* Debug */, - 76FC222D2930801400A10444 /* Release */, - 76FC222E2930801400A10444 /* Profile */, + 17B3F0ED2D0210A500F0AF99 /* Debug */, + 17B3F0EE2D0210A500F0AF99 /* Release */, + 17B3F0EF2D0210A500F0AF99 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C8088294A63A400263BE5 /* Debug */, + 331C8089294A63A400263BE5 /* Release */, + 331C808A294A63A400263BE5 /* Profile */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -887,6 +1237,32 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + +/* Begin XCLocalSwiftPackageReference section */ + 178632682D0200CD000BC948 /* XCLocalSwiftPackageReference "../darwin/OuisyncBackend" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = ../darwin/OuisyncBackend; + }; + 178632692D0200E4000BC948 /* XCLocalSwiftPackageReference "../darwin/OuisyncCommon" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = ../darwin/OuisyncCommon; + }; + 1786326C2D0200FD000BC948 /* XCLocalSwiftPackageReference "../ouisync/bindings/swift/OuisyncLib" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = ../ouisync/bindings/swift/OuisyncLib; + }; +/* End XCLocalSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + 1786326A2D0200E4000BC948 /* OuisyncCommon */ = { + isa = XCSwiftPackageProductDependency; + productName = OuisyncCommon; + }; + 17B3F0F12D0210F200F0AF99 /* OuisyncBackend */ = { + isa = XCSwiftPackageProductDependency; + productName = OuisyncBackend; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 97C146E61CF9000F007C117D /* Project object */; } diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 000000000..6651d5099 --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,14 @@ +{ + "pins" : [ + { + "identity" : "messagepack.swift", + "kind" : "remoteSourceControl", + "location" : "https://github.com/a2/MessagePack.swift.git", + "state" : { + "revision" : "27b35fd49e92fcae395bf8ccb233499d89cc7890", + "version" : "4.0.0" + } + } + ], + "version" : 2 +} diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 5e31d3d34..325766723 100644 --- a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ @@ -31,12 +31,23 @@ + + + + @@ -71,7 +82,7 @@ diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata index 21a3cc14c..e907c1989 100644 --- a/ios/Runner.xcworkspace/contents.xcworkspacedata +++ b/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -1,6 +1,15 @@ + + + + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved b/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 000000000..6651d5099 --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,14 @@ +{ + "pins" : [ + { + "identity" : "messagepack.swift", + "kind" : "remoteSourceControl", + "location" : "https://github.com/a2/MessagePack.swift.git", + "state" : { + "revision" : "27b35fd49e92fcae395bf8ccb233499d89cc7890", + "version" : "4.0.0" + } + } + ], + "version" : 2 +} diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift index b63630348..12ca6d2d3 100644 --- a/ios/Runner/AppDelegate.swift +++ b/ios/Runner/AppDelegate.swift @@ -1,13 +1,35 @@ -import UIKit import Flutter +import OuisyncCommon +import UIKit + + +@main @objc class AppDelegate: FlutterAppDelegate { + typealias LaunchOptions = [UIApplication.LaunchOptionsKey: Any]? + override func application(_ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: LaunchOptions) -> Bool { + guard let flutter = window.rootViewController as? FlutterViewController else { + print("App root view controller is not flutter") + return false + } + + FlutterMethodChannel(name: Constants.flutterConfigChannel, + binaryMessenger: flutter.binaryMessenger) + .setMethodCallHandler { call, result in + switch call.method { + case "getSharedDir": result(Directories.rootPath) + // case "getMountRootDirectory": Not supported on iOS + default: result(FlutterError(code: "OS06", + message: "Method \"\(call.method)\" not exported by host", + details: nil)) + } + } + + bag.append(FileProviderProxy(flutter.binaryMessenger)) + + GeneratedPluginRegistrant.register(with: self) + + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } -@main -@objc class AppDelegate: FlutterAppDelegate { - override func application( - _ application: UIApplication, - didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? - ) -> Bool { - GeneratedPluginRegistrant.register(with: self) - return super.application(application, didFinishLaunchingWithOptions: launchOptions) - } + private var bag = [AnyObject]() // things that we don't need but should nonetheless be retained } diff --git a/ios/Runner/Assets.xcassets/Contents.json b/ios/Runner/Assets.xcassets/Contents.json new file mode 100644 index 000000000..73c00596a --- /dev/null +++ b/ios/Runner/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json deleted file mode 100644 index 0bedcf2fd..000000000 --- a/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "LaunchImage.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "LaunchImage@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "LaunchImage@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png deleted file mode 100644 index 9da19eaca..000000000 Binary files a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png and /dev/null differ diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png deleted file mode 100644 index 9da19eaca..000000000 Binary files a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png and /dev/null differ diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png deleted file mode 100644 index 9da19eaca..000000000 Binary files a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png and /dev/null differ diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md deleted file mode 100644 index 89c2725b7..000000000 --- a/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Launch Screen Assets - -You can customize the launch screen with your own desired assets by replacing the image files in this directory. - -You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/ios/Runner/Base.lproj/LaunchScreen.storyboard b/ios/Runner/Base.lproj/LaunchScreen.storyboard index f2e259c7c..59fa216ca 100644 --- a/ios/Runner/Base.lproj/LaunchScreen.storyboard +++ b/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -1,8 +1,10 @@ - - + + + - + + @@ -14,24 +16,14 @@ + - - - - - - - - - + - - - diff --git a/ios/Runner/Base.lproj/Main.storyboard b/ios/Runner/Base.lproj/Main.storyboard index f3c28516f..f80b97aba 100644 --- a/ios/Runner/Base.lproj/Main.storyboard +++ b/ios/Runner/Base.lproj/Main.storyboard @@ -1,8 +1,10 @@ - - + + + - + + @@ -14,13 +16,14 @@ - + - + + diff --git a/ios/Runner/Entitlements.entitlements b/ios/Runner/Entitlements.entitlements new file mode 100644 index 000000000..db7329635 --- /dev/null +++ b/ios/Runner/Entitlements.entitlements @@ -0,0 +1,12 @@ + + + + + com.apple.security.application-groups + + group.org.equalitie + + com.apple.security.network.client + + + diff --git a/ios/Runner/FileProviderProxy.swift b/ios/Runner/FileProviderProxy.swift new file mode 100644 index 000000000..8d53a8176 --- /dev/null +++ b/ios/Runner/FileProviderProxy.swift @@ -0,0 +1,103 @@ +import FileProvider +import Flutter +import OuisyncCommon + + +// TODO: this memory copy is unavoidable unless OuisyncLib is updated to use Data (itself [UInt8]-like) +extension Data { + var bytes: [UInt8] { [UInt8](self) } +} +extension FlutterError: Error {} + +@MainActor +class FileProviderProxy: FromFileProviderToAppProtocol { + private var manager: NSFileProviderManager! + private var service: NSFileProviderService! + private var connection: NSXPCConnection! + let channel: FlutterMethodChannel + + init(_ flutterBinaryMessenger: FlutterBinaryMessenger) { + channel = FlutterMethodChannel(name: Constants.flutterForwardingChannel, + binaryMessenger: flutterBinaryMessenger) + channel.setMethodCallHandler { + [weak self] call, result in guard let self + else { return result(FlutterError(code: "OS00", + message: "Host shutdown", + details: nil)) } + Task { + do { + let res = try await self.invoke(call) + result(res is Void ? nil : res) + } catch { + print(error) + result(error as? FlutterError ?? FlutterError(code: "OS01", + message: "Unknown error in host", + details: String(describing: error))) + } + } + } + } + + nonisolated func fromFileProviderToApp(_ message: [UInt8]) { + DispatchQueue.main.async { + self.channel.invokeMethod("response", arguments: message) + } + } + + private func invoke(_ call: FlutterMethodCall) async throws -> Any? { + switch call.method { + case "initialize": + try await NSFileProviderManager.add(ouisyncFileProviderDomain) + manager = NSFileProviderManager(for: ouisyncFileProviderDomain) + if manager == nil { throw FlutterError(code: "OS02", + message: "Unable to obtain File Provider manager", + details: nil) } + // the following two concurrency warnings can be ignored because they're just transferring + // ownership of instances created in a different actor; it's better to see them than + // declaring unchecked Sendable conformance because they should be isolated otherwise + service = try await manager.service(named: ouisyncFileProviderServiceName, + for: NSFileProviderItemIdentifier.rootContainer) + if service == nil { throw FlutterError(code: "OS02", + message: "Unable to obtain File Provider service", + details: nil) } + + connection = try await service.fileProviderConnection() + connection.remoteObjectInterface = NSXPCInterface(with: FromAppToFileProviderProtocol.self) + + connection.interruptionHandler = { [weak self] in self?.reset("interrupted") } + connection.invalidationHandler = { [weak self] in self?.reset("invalidated") } + + connection.exportedObject = self + connection.exportedInterface = NSXPCInterface(with: FromFileProviderToAppProtocol.self) + connection.resume() + case "invoke": + guard let bytes = (call.arguments as? FlutterStandardTypedData)?.data.bytes + else { throw FlutterError(code: "OS03", + message: "Unable to parse message", + details: nil) } + guard let connection + else { throw FlutterError(code: "OS04", + message: "Extension is not connected", + details: nil) } + guard let proto = connection.remoteObjectProxy() as? FromAppToFileProviderProtocol + else { throw FlutterError(code: "OS05", + message: "Extension is incompatible with host", + details: nil) } + + proto.fromAppToFileProvider(bytes) + default: throw FlutterError(code: "OS06", + message: "Method \"\(call.method)\" not exported by host", + details: nil) + } + return nil + } + + nonisolated private func reset(_ reason: String) { + DispatchQueue.main.async { + self.connection = nil + self.channel.invokeMethod("reset", arguments: reason) + } + } +} + + diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index df1af4983..c943519bf 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -2,16 +2,12 @@ - - - AppGroupId - $(CUSTOM_GROUP_ID) CADisableMinimumFrameDurationOnPhone CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName - Ouisync + $(PRODUCT_NAME) CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -23,59 +19,34 @@ CFBundlePackageType APPL CFBundleShortVersionString - $(FLUTTER_BUILD_NAME) + $(MARKETING_VERSION) CFBundleSignature ???? - CFBundleURLTypes - - - CFBundleTypeRole - Editor - CFBundleURLSchemes - - ShareMedia-$(PRODUCT_BUNDLE_IDENTIFIER) - - - CFBundleVersion - $(FLUTTER_BUILD_NUMBER) - LSApplicationQueriesSchemes - - photos:// - + $(CURRENT_PROJECT_VERSION) + ITSAppUsesNonExemptEncryption + LSRequiresIPhoneOS NSCameraUsageDescription - We need access to your camera for reading the QR code + Pair with other machines by scanning QR codes NSPhotoLibraryUsageDescription - To upload photos, please allow permission to access your photo library. + Import files from your media library into Ouisync UIApplicationSupportsIndirectInputEvents UILaunchStoryboardName LaunchScreen UIMainStoryboardFile Main + UIRequiresFullScreen + UISupportedInterfaceOrientations UIInterfaceOrientationPortrait UISupportedInterfaceOrientations~ipad - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIViewControllerBasedStatusBarAppearance - - LSSupportsOpeningDocumentsInPlace - - UIFileSharingEnabled - - NSAppTransportSecurity - - NSAllowsArbitraryLoads - - diff --git a/ios/Tests/Example.swift b/ios/Tests/Example.swift new file mode 100644 index 000000000..86a7c3b1b --- /dev/null +++ b/ios/Tests/Example.swift @@ -0,0 +1,12 @@ +import Flutter +import UIKit +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/lib/app/app.dart b/lib/app/app.dart index 15a651ed9..dc744d5fe 100644 --- a/lib/app/app.dart +++ b/lib/app/app.dart @@ -104,7 +104,8 @@ class _AppContainerState extends State { // we use a custom key tied to the session to force the child // component to drop state whenever the session disconnects key: Key(state.sessionId)), - currentLocale: localeState.currentLocale))), + currentLocale: localeState.currentLocale, + navigatorObservers: [_AppNavigatorObserver(widget.logger)]))), Failure(value: final error) => _createInMaterialApp(ErrorScreen( message: error is InvalidSettingsVersion ? S.current.messageSettingsVersionNewerThanCurrent diff --git a/lib/app/session.dart b/lib/app/session.dart index 6bcc050f7..d0ea5c6bd 100644 --- a/lib/app/session.dart +++ b/lib/app/session.dart @@ -22,7 +22,7 @@ Future createSession( final Session session; - if (Platform.isMacOS) { + if (Platform.isMacOS || Platform.isIOS) { // On MacOS, later on iOS and possibly other platforms as well, the Ouisync // Rust backend runs in the native code and we communicate with it using // Flutter's `PlatformChannels`. diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index 25e704032..f3a0cd62d 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -10,7 +10,7 @@ #include #include #include -#include +#include #include #include #include @@ -29,9 +29,9 @@ void fl_register_plugins(FlPluginRegistry* registry) { g_autoptr(FlPluginRegistrar) ouisync_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "OuisyncPlugin"); ouisync_plugin_register_with_registrar(ouisync_registrar); - g_autoptr(FlPluginRegistrar) screen_retriever_registrar = - fl_plugin_registry_get_registrar_for_plugin(registry, "ScreenRetrieverPlugin"); - screen_retriever_plugin_register_with_registrar(screen_retriever_registrar); + g_autoptr(FlPluginRegistrar) screen_retriever_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "ScreenRetrieverLinuxPlugin"); + screen_retriever_linux_plugin_register_with_registrar(screen_retriever_linux_registrar); g_autoptr(FlPluginRegistrar) sentry_flutter_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "SentryFlutterPlugin"); sentry_flutter_plugin_register_with_registrar(sentry_flutter_registrar); diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index 6274f3167..ed5df2da7 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -7,7 +7,7 @@ list(APPEND FLUTTER_PLUGIN_LIST desktop_drop flutter_secure_storage_linux ouisync - screen_retriever + screen_retriever_linux sentry_flutter system_tray url_launcher_linux diff --git a/macos/Common/SuccessfulTask.swift b/macos/Common/SuccessfulTask.swift deleted file mode 100644 index 80a946c3c..000000000 --- a/macos/Common/SuccessfulTask.swift +++ /dev/null @@ -1,30 +0,0 @@ -// -// SuccessfulTask.swift -// Common -// -// Created by Peter Jankuliak on 03/06/2024. -// - -import Foundation - -// Task that report any thrown Error from `operation` with `fatalError` -public class SuccessfulTask { - let taskName: String? - - @discardableResult - public init(name taskName: String? = nil, _ operation: @escaping @Sendable () async throws -> Void) { - self.taskName = taskName - - Task { - do { - try await operation() - } catch { - if let name = taskName { - fatalError("Task \"\(name)\" finished with unexpected error: \(error)") - } else { - fatalError("Task finished with unexpected error: \(error)") - } - } - } - } -} diff --git a/macos/Extension/Entitlements.entitlements b/macos/Extension/Entitlements.entitlements index d411c831d..746f3ed2e 100644 --- a/macos/Extension/Entitlements.entitlements +++ b/macos/Extension/Entitlements.entitlements @@ -3,15 +3,13 @@ com.apple.application-identifier - $(TeamIdentifierPrefix)$(AppIdentifierPrefix)$(PRODUCT_BUNDLE_IDENTIFIER) + $(AppIdentifierPrefix)$(PRODUCT_BUNDLE_IDENTIFIER) com.apple.security.app-sandbox com.apple.security.application-groups $(TeamIdentifierPrefix)org.equalitie.ouisync - com.apple.security.cs.disable-library-validation - com.apple.security.network.client com.apple.security.network.server diff --git a/macos/Extension/EntryPoint.swift b/macos/Extension/EntryPoint.swift index 1daef043d..2950600af 100644 --- a/macos/Extension/EntryPoint.swift +++ b/macos/Extension/EntryPoint.swift @@ -1,4 +1,4 @@ -import Backend // bit of a hack until we sort out the visibility +import OuisyncBackend final class FileProvider: Extension {} diff --git a/macos/Flutter/Flutter-Debug.xcconfig b/macos/Flutter/Flutter-Debug.xcconfig index 4b81f9b2d..b8eb5550c 100644 --- a/macos/Flutter/Flutter-Debug.xcconfig +++ b/macos/Flutter/Flutter-Debug.xcconfig @@ -1,2 +1,2 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include? "../Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "ephemeral/Flutter-Generated.xcconfig" diff --git a/macos/Flutter/Flutter-Release.xcconfig b/macos/Flutter/Flutter-Release.xcconfig index 5caa9d157..575a9767c 100644 --- a/macos/Flutter/Flutter-Release.xcconfig +++ b/macos/Flutter/Flutter-Release.xcconfig @@ -1,2 +1,2 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include? "../Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "ephemeral/Flutter-Generated.xcconfig" diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index d28f1da29..4de0741d4 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -17,7 +17,7 @@ import network_info_plus import ouisync import package_info_plus import path_provider_foundation -import screen_retriever +import screen_retriever_macos import sentry_flutter import share_plus import shared_preferences_foundation @@ -39,7 +39,7 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { OuisyncPlugin.register(with: registry.registrar(forPlugin: "OuisyncPlugin")) FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin")) PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) - ScreenRetrieverPlugin.register(with: registry.registrar(forPlugin: "ScreenRetrieverPlugin")) + ScreenRetrieverMacosPlugin.register(with: registry.registrar(forPlugin: "ScreenRetrieverMacosPlugin")) SentryFlutterPlugin.register(with: registry.registrar(forPlugin: "SentryFlutterPlugin")) SharePlusMacosPlugin.register(with: registry.registrar(forPlugin: "SharePlusMacosPlugin")) SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 24feaecd0..0e9dc11ab 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -28,13 +28,13 @@ PODS: - path_provider_foundation (0.0.1): - Flutter - FlutterMacOS - - screen_retriever (0.0.1): + - screen_retriever_macos (0.0.1): - FlutterMacOS - - Sentry/HybridSDK (8.36.0) - - sentry_flutter (8.9.0): + - Sentry/HybridSDK (8.40.1) + - sentry_flutter (8.10.1): - Flutter - FlutterMacOS - - Sentry/HybridSDK (= 8.36.0) + - Sentry/HybridSDK (= 8.40.1) - share_plus (0.0.1): - FlutterMacOS - shared_preferences_foundation (0.0.1): @@ -64,7 +64,7 @@ DEPENDENCIES: - ouisync (from `Flutter/ephemeral/.symlinks/plugins/ouisync/darwin`) - package_info_plus (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos`) - path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin`) - - screen_retriever (from `Flutter/ephemeral/.symlinks/plugins/screen_retriever/macos`) + - screen_retriever_macos (from `Flutter/ephemeral/.symlinks/plugins/screen_retriever_macos/macos`) - sentry_flutter (from `Flutter/ephemeral/.symlinks/plugins/sentry_flutter/macos`) - share_plus (from `Flutter/ephemeral/.symlinks/plugins/share_plus/macos`) - shared_preferences_foundation (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin`) @@ -104,8 +104,8 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral/.symlinks/plugins/package_info_plus/macos path_provider_foundation: :path: Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin - screen_retriever: - :path: Flutter/ephemeral/.symlinks/plugins/screen_retriever/macos + screen_retriever_macos: + :path: Flutter/ephemeral/.symlinks/plugins/screen_retriever_macos/macos sentry_flutter: :path: Flutter/ephemeral/.symlinks/plugins/sentry_flutter/macos share_plus: @@ -123,7 +123,7 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: biometric_storage: 43caa6e7ef00e8e19c074216e7e1786dacda9e76 - connectivity_plus: ddd7f30999e1faaef5967c23d5b6d503d10434db + connectivity_plus: 4c41c08fc6d7c91f63bc7aec70ffe3730b04f563 cryptography_flutter: c9fa581b52e6fe19475432b6f44489c387f61e19 desktop_drop: 69eeff437544aa619c8db7f4481b3a65f7696898 device_info_plus: ce1b7762849d3ec103d0e0517299f2db7ad60720 @@ -131,20 +131,20 @@ SPEC CHECKSUMS: FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 local_auth_darwin: 66e40372f1c29f383a314c738c7446e2f7fdadc3 mobile_scanner: 0a05256215b047af27b9495db3b77640055e8824 - network_info_plus: aeb9c4ed699cae128bc94b9d0f04f2389a414cbb + network_info_plus: 2cb02d8435635eae13b3b79279681985121cf30c ouisync: 2620ea99b935c285b7383dd4dbd64d37b0445cef - package_info_plus: fa739dd842b393193c5ca93c26798dff6e3d0e0c + package_info_plus: 12f1c5c2cfe8727ca46cbd0b26677728972d9a5b path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 - screen_retriever: 59634572a57080243dd1bf715e55b6c54f241a38 - Sentry: f8374b5415bc38dfb5645941b3ae31230fbeae57 - sentry_flutter: 0eb93e5279eb41e2392212afe1ccd2fecb4f8cbe - share_plus: 36537c04ce0c3e3f5bd297ce4318b6d5ee5fd6cf + screen_retriever_macos: 776e0fa5d42c6163d2bf772d22478df4b302b161 + Sentry: e9215d7b17f7902692b4f8700e061e4f853e3521 + sentry_flutter: 927eed60d66951d1b0f1db37fe94ff5cb7c80231 + share_plus: 1fa619de8392a4398bfaf176d441853922614e89 shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 system_tray: e53c972838c69589ff2e77d6d3abfd71332f9e5d - url_launcher_macos: 5f437abeda8c85500ceb03f5c1938a8c5a705399 + url_launcher_macos: c82c93949963e55b228a30115bd219499a6fe404 webview_flutter_wkwebview: 0982481e3d9c78fd5c6f62a002fcd24fc791f1e4 window_manager: 3a1844359a6295ab1e47659b1a777e36773cd6e8 PODFILE CHECKSUM: 236401fc2c932af29a9fcf0e97baeeb2d750d367 -COCOAPODS: 1.15.2 +COCOAPODS: 1.16.2 diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index 9c3381928..85d8dba1a 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -21,52 +21,27 @@ /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ + 170EAE4A2CEE87CC00468424 /* OuisyncCommon in Frameworks */ = {isa = PBXBuildFile; productRef = 170EAE492CEE87CC00468424 /* OuisyncCommon */; }; + 170EAE4C2CEE87D700468424 /* OuisyncBackend in Frameworks */ = {isa = PBXBuildFile; productRef = 170EAE4B2CEE87D700468424 /* OuisyncBackend */; }; + 170EAE502CEE87E800468424 /* OuisyncBackend in Frameworks */ = {isa = PBXBuildFile; productRef = 170EAE4F2CEE87E800468424 /* OuisyncBackend */; }; + 170EAE532CEE897100468424 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1786CC092CE5D6DE0055B0EE /* SystemConfiguration.framework */; }; + 1749700F2CEF46C90071B32F /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1786CC092CE5D6DE0055B0EE /* SystemConfiguration.framework */; }; 175AEAC52CE47EF700472952 /* EntryPoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 175AEAC22CE47CBC00472952 /* EntryPoint.swift */; }; - 175AEAD02CE47FFF00472952 /* Log.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1ECD785D2C0F2806005D7636 /* Log.swift */; }; 175AEAE32CE4850100472952 /* Shutdown.swift in Sources */ = {isa = PBXBuildFile; fileRef = 175AEAE22CE4850100472952 /* Shutdown.swift */; }; 1780336E2CE492C100291248 /* OuisyncFileProvider.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 1EC102BD2BAC66050026BD42 /* OuisyncFileProvider.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - 1786CBFB2CE5CC210055B0EE /* Backend.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17D8E5C42CE47C13005D70BC /* Backend.framework */; }; - 1786CBFC2CE5CC210055B0EE /* Backend.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 17D8E5C42CE47C13005D70BC /* Backend.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 1786CC0D2CE5D9670055B0EE /* Backend.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17D8E5C42CE47C13005D70BC /* Backend.framework */; }; - 1786CC0E2CE5D9670055B0EE /* Backend.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 17D8E5C42CE47C13005D70BC /* Backend.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 17D8E5D22CE47C65005D70BC /* Hash.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E81CEB02C1C679D00C90095 /* Hash.swift */; }; - 17D8E5D32CE47C65005D70BC /* ItemIdentifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E86CDB52BFE4BF6003A67A0 /* ItemIdentifier.swift */; }; - 17D8E5D42CE47C65005D70BC /* Debug.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1ECD78602C0F40A0005D7636 /* Debug.swift */; }; - 17D8E5D52CE47C65005D70BC /* ExtError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EBC4D492BB1B5A50053E2F3 /* ExtError.swift */; }; - 17D8E5D62CE47C65005D70BC /* Version.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E30CADA2C215BEA00EF65A0 /* Version.swift */; }; - 17D8E5D72CE47C65005D70BC /* Path.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E60DA1B2BD0FBEE001422A4 /* Path.swift */; }; - 17D8E5D82CE47C65005D70BC /* Anchor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1ECD78512C00DA62005D7636 /* Anchor.swift */; }; - 17D8E5D92CE47C69005D70BC /* Extension+Servicing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E60DA172BD0218C001422A4 /* Extension+Servicing.swift */; }; - 17D8E5DA2CE47C69005D70BC /* Item.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EC102C22BAC66050026BD42 /* Item.swift */; }; - 17D8E5DB2CE47C69005D70BC /* Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EC102C02BAC66050026BD42 /* Extension.swift */; }; - 17D8E5DC2CE47C69005D70BC /* Enumerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EC102C42BAC66050026BD42 /* Enumerator.swift */; }; - 17DC40282CEA9188009C21A0 /* OuisyncLib in Frameworks */ = {isa = PBXBuildFile; productRef = 17DC40272CEA9188009C21A0 /* OuisyncLib */; }; - 17DC40292CEA92A3009C21A0 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1786CC092CE5D6DE0055B0EE /* SystemConfiguration.framework */; }; 17DC402B2CEA92E0009C21A0 /* LaunchAtLogin in Frameworks */ = {isa = PBXBuildFile; productRef = 17DC402A2CEA92E0009C21A0 /* LaunchAtLogin */; }; - 17DC402C2CEA940D009C21A0 /* Common.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EBC4D502BB1B6840053E2F3 /* Common.framework */; }; - 17DC402D2CEA940D009C21A0 /* Common.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 1EBC4D502BB1B6840053E2F3 /* Common.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 17FED8DD2D026D3F00F136DC /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 179DC58B2D0257DF007B4647 /* MainMenu.xib */; }; 1E6D33D22BBD4E8A00AFB60E /* FileProviderProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E6D33D12BBD4E8A00AFB60E /* FileProviderProxy.swift */; }; - 1E76A0412BB3028600CB6BBE /* FileProviderServiceProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E76A0402BB3028600CB6BBE /* FileProviderServiceProtocol.swift */; }; - 1ECD785B2C0DC0DF005D7636 /* SuccessfulTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1ECD78552C0DAD46005D7636 /* SuccessfulTask.swift */; }; - 1EE048512C4FB4BC00A653F2 /* Directories.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EE048502C4FB4BC00A653F2 /* Directories.swift */; }; 331C80D8294CF71000263BE5 /* Environment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* Environment.swift */; }; 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; 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 */; }; 834BDDB917752395531F009D /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7A93B26F8F192724B261AEB0 /* Pods_Runner.framework */; }; EA1E56409A2392D3D6400A25 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E12D5CBA9317F3CD740717A /* Pods_RunnerTests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 175AEAE02CE483D900472952 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 33CC10E52044A3C60003C045 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1EBC4D4F2BB1B6840053E2F3; - remoteInfo = Common; - }; 1780336F2CE492C100291248 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 33CC10E52044A3C60003C045 /* Project object */; @@ -74,20 +49,6 @@ remoteGlobalIDString = 1EC102BC2BAC66050026BD42; remoteInfo = OuisyncFileProvider; }; - 1786CBFD2CE5CC210055B0EE /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 33CC10E52044A3C60003C045 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 17D8E5C32CE47C13005D70BC; - remoteInfo = Backend; - }; - 1786CC0F2CE5D9670055B0EE /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 33CC10E52044A3C60003C045 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 17D8E5C32CE47C13005D70BC; - remoteInfo = Backend; - }; 17D8E5B92CE40C00005D70BC /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 33CC10E52044A3C60003C045 /* Project object */; @@ -102,13 +63,6 @@ remoteGlobalIDString = 33CC10EC2044A3C60003C045; remoteInfo = Runner; }; - 17DC402E2CEA940D009C21A0 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 33CC10E52044A3C60003C045 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1EBC4D4F2BB1B6840053E2F3; - remoteInfo = Common; - }; 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 33CC10E52044A3C60003C045 /* Project object */; @@ -130,69 +84,19 @@ name = "Embed Foundation Extensions"; runOnlyForDeploymentPostprocessing = 0; }; - 1786CBFF2CE5CC210055B0EE /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 1786CBFC2CE5CC210055B0EE /* Backend.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - 1786CC112CE5D9670055B0EE /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 1786CC0E2CE5D9670055B0EE /* Backend.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - 17DC40302CEA940D009C21A0 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 17DC402D2CEA940D009C21A0 /* Common.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ 175AEAC22CE47CBC00472952 /* EntryPoint.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EntryPoint.swift; sourceTree = ""; }; 175AEAE22CE4850100472952 /* Shutdown.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Shutdown.swift; sourceTree = ""; }; - 1786CC062CE5D44D0055B0EE /* libouisync_ffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libouisync_ffi.a; path = ../../libouisync_ffi.a; sourceTree = ""; }; 1786CC092CE5D6DE0055B0EE /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; - 17D8E5C42CE47C13005D70BC /* Backend.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Backend.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 179DC58C2D0257DF007B4647 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Runner/Base.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; 1E12D5CBA9317F3CD740717A /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 1E30CADA2C215BEA00EF65A0 /* Version.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Version.swift; sourceTree = ""; }; - 1E60DA172BD0218C001422A4 /* Extension+Servicing.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Extension+Servicing.swift"; sourceTree = ""; }; - 1E60DA1B2BD0FBEE001422A4 /* Path.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Path.swift; sourceTree = ""; }; 1E640B172BA44F3500FF6B18 /* UniformTypeIdentifiers.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UniformTypeIdentifiers.framework; path = System/Library/Frameworks/UniformTypeIdentifiers.framework; sourceTree = SDKROOT; }; 1E6D33D12BBD4E8A00AFB60E /* FileProviderProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileProviderProxy.swift; sourceTree = ""; }; - 1E76A0402BB3028600CB6BBE /* FileProviderServiceProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileProviderServiceProtocol.swift; sourceTree = ""; }; - 1E81CEB02C1C679D00C90095 /* Hash.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Hash.swift; sourceTree = ""; }; - 1E86CDB52BFE4BF6003A67A0 /* ItemIdentifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemIdentifier.swift; sourceTree = ""; }; - 1EBC4D492BB1B5A50053E2F3 /* ExtError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExtError.swift; sourceTree = ""; }; - 1EBC4D502BB1B6840053E2F3 /* Common.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Common.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 1EC102BD2BAC66050026BD42 /* OuisyncFileProvider.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = OuisyncFileProvider.appex; sourceTree = BUILT_PRODUCTS_DIR; }; - 1EC102C02BAC66050026BD42 /* Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Extension.swift; sourceTree = ""; }; - 1EC102C22BAC66050026BD42 /* Item.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Item.swift; sourceTree = ""; }; - 1EC102C42BAC66050026BD42 /* Enumerator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Enumerator.swift; sourceTree = ""; }; 1EC102C62BAC66050026BD42 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 1EC102C72BAC66050026BD42 /* Entitlements.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Entitlements.entitlements; sourceTree = ""; }; - 1ECD78512C00DA62005D7636 /* Anchor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Anchor.swift; sourceTree = ""; }; - 1ECD78552C0DAD46005D7636 /* SuccessfulTask.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SuccessfulTask.swift; sourceTree = ""; }; - 1ECD785D2C0F2806005D7636 /* Log.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Log.swift; sourceTree = ""; }; - 1ECD78602C0F40A0005D7636 /* Debug.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Debug.swift; sourceTree = ""; }; - 1EE048502C4FB4BC00A653F2 /* Directories.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Directories.swift; sourceTree = ""; }; 25420BEC609102AA8183D515 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; 30CDA840AD45D32461319ABD /* 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 = ""; }; 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -201,15 +105,13 @@ 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; 33CC10ED2044A3C60003C045 /* Ouisync.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Ouisync.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 = ""; }; - 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; }; + 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; }; 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; }; 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; }; 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; }; - 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 = ""; }; + 33E51914231749380026EE4D /* Entitlements.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Entitlements.entitlements; sourceTree = ""; }; 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; 35817D32FD9886829B961FA9 /* 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 = ""; }; 4685941C6AA05137ED0AEA01 /* 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 = ""; }; @@ -221,28 +123,12 @@ /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 17D8E5C12CE47C13005D70BC /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 17DC402C2CEA940D009C21A0 /* Common.framework in Frameworks */, - 17DC40292CEA92A3009C21A0 /* SystemConfiguration.framework in Frameworks */, - 17DC40282CEA9188009C21A0 /* OuisyncLib in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1EBC4D4D2BB1B6840053E2F3 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 1EC102BA2BAC66050026BD42 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 1786CBFB2CE5CC210055B0EE /* Backend.framework in Frameworks */, + 170EAE532CEE897100468424 /* SystemConfiguration.framework in Frameworks */, + 170EAE502CEE87E800468424 /* OuisyncBackend in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -250,8 +136,9 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 170EAE4C2CEE87D700468424 /* OuisyncBackend in Frameworks */, + 1749700F2CEF46C90071B32F /* SystemConfiguration.framework in Frameworks */, EA1E56409A2392D3D6400A25 /* Pods_RunnerTests.framework in Frameworks */, - 1786CC0D2CE5D9670055B0EE /* Backend.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -260,6 +147,7 @@ buildActionMask = 2147483647; files = ( 17DC402B2CEA92E0009C21A0 /* LaunchAtLogin in Frameworks */, + 170EAE4A2CEE87CC00468424 /* OuisyncCommon in Frameworks */, 834BDDB917752395531F009D /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -267,35 +155,6 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 17D8E5C52CE47C13005D70BC /* Backend */ = { - isa = PBXGroup; - children = ( - 1ECD785D2C0F2806005D7636 /* Log.swift */, - 1EC102C02BAC66050026BD42 /* Extension.swift */, - 1E60DA172BD0218C001422A4 /* Extension+Servicing.swift */, - 1EC102C42BAC66050026BD42 /* Enumerator.swift */, - 1EC102C22BAC66050026BD42 /* Item.swift */, - 1EBC4D492BB1B5A50053E2F3 /* ExtError.swift */, - 1E60DA1B2BD0FBEE001422A4 /* Path.swift */, - 1E86CDB52BFE4BF6003A67A0 /* ItemIdentifier.swift */, - 1ECD78512C00DA62005D7636 /* Anchor.swift */, - 1ECD78602C0F40A0005D7636 /* Debug.swift */, - 1E81CEB02C1C679D00C90095 /* Hash.swift */, - 1E30CADA2C215BEA00EF65A0 /* Version.swift */, - ); - path = Backend; - sourceTree = ""; - }; - 1EBC4D512BB1B6840053E2F3 /* Common */ = { - isa = PBXGroup; - children = ( - 1E76A0402BB3028600CB6BBE /* FileProviderServiceProtocol.swift */, - 1ECD78552C0DAD46005D7636 /* SuccessfulTask.swift */, - 1EE048502C4FB4BC00A653F2 /* Directories.swift */, - ); - path = Common; - sourceTree = ""; - }; 1EC102BF2BAC66050026BD42 /* Extension */ = { isa = PBXGroup; children = ( @@ -343,8 +202,6 @@ isa = PBXGroup; children = ( 33CEB47122A05771004F2AC0 /* Flutter */, - 1EBC4D512BB1B6840053E2F3 /* Common */, - 17D8E5C52CE47C13005D70BC /* Backend */, 33FAB671232836740065AC1E /* Runner */, 331C80D6294CF71000263BE5 /* Tests */, 33CC10EE2044A3C60003C045 /* Products */, @@ -360,23 +217,10 @@ 33CC10ED2044A3C60003C045 /* Ouisync.app */, 331C80D5294CF71000263BE5 /* RunnerTests.xctest */, 1EC102BD2BAC66050026BD42 /* OuisyncFileProvider.appex */, - 1EBC4D502BB1B6840053E2F3 /* Common.framework */, - 17D8E5C42CE47C13005D70BC /* Backend.framework */, ); name = Products; sourceTree = ""; }; - 33CC11242044D66E0003C045 /* Resources */ = { - isa = PBXGroup; - children = ( - 33CC10F22044A3C60003C045 /* Assets.xcassets */, - 33CC10F42044A3C60003C045 /* MainMenu.xib */, - 33CC10F72044A3C60003C045 /* Info.plist */, - ); - name = Resources; - path = ..; - sourceTree = ""; - }; 33CEB47122A05771004F2AC0 /* Flutter */ = { isa = PBXGroup; children = ( @@ -391,12 +235,13 @@ 33FAB671232836740065AC1E /* Runner */ = { isa = PBXGroup; children = ( + 33CC10F22044A3C60003C045 /* Assets.xcassets */, + 33CC10F72044A3C60003C045 /* Info.plist */, + 33E51914231749380026EE4D /* Entitlements.entitlements */, + 179DC58B2D0257DF007B4647 /* MainMenu.xib */, 33CC10F02044A3C60003C045 /* AppDelegate.swift */, 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */, 1E6D33D12BBD4E8A00AFB60E /* FileProviderProxy.swift */, - 33E51913231747F40026EE4D /* DebugProfile.entitlements */, - 33E51914231749380026EE4D /* Release.entitlements */, - 33CC11242044D66E0003C045 /* Resources */, 33BA886A226E78AF003329D5 /* Configs */, ); path = Runner; @@ -406,7 +251,6 @@ isa = PBXGroup; children = ( 1786CC092CE5D6DE0055B0EE /* SystemConfiguration.framework */, - 1786CC062CE5D44D0055B0EE /* libouisync_ffi.a */, 1E640B172BA44F3500FF6B18 /* UniformTypeIdentifiers.framework */, 7A93B26F8F192724B261AEB0 /* Pods_Runner.framework */, 1E12D5CBA9317F3CD740717A /* Pods_RunnerTests.framework */, @@ -416,65 +260,7 @@ }; /* End PBXGroup section */ -/* Begin PBXHeadersBuildPhase section */ - 17D8E5BF2CE47C13005D70BC /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1EBC4D4B2BB1B6840053E2F3 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - /* Begin PBXNativeTarget section */ - 17D8E5C32CE47C13005D70BC /* Backend */ = { - isa = PBXNativeTarget; - buildConfigurationList = 17D8E5CE2CE47C13005D70BC /* Build configuration list for PBXNativeTarget "Backend" */; - buildPhases = ( - 17D8E5BF2CE47C13005D70BC /* Headers */, - 17D8E5C02CE47C13005D70BC /* Sources */, - 17D8E5C12CE47C13005D70BC /* Frameworks */, - 17D8E5C22CE47C13005D70BC /* Resources */, - 17DC40302CEA940D009C21A0 /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 17DC402F2CEA940D009C21A0 /* PBXTargetDependency */, - ); - name = Backend; - packageProductDependencies = ( - 17DC40272CEA9188009C21A0 /* OuisyncLib */, - ); - productName = Backend; - productReference = 17D8E5C42CE47C13005D70BC /* Backend.framework */; - productType = "com.apple.product-type.framework"; - }; - 1EBC4D4F2BB1B6840053E2F3 /* Common */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1EBC4D672BB1B6850053E2F3 /* Build configuration list for PBXNativeTarget "Common" */; - buildPhases = ( - 1EBC4D4B2BB1B6840053E2F3 /* Headers */, - 1EBC4D4C2BB1B6840053E2F3 /* Sources */, - 1EBC4D4D2BB1B6840053E2F3 /* Frameworks */, - 1EBC4D4E2BB1B6840053E2F3 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Common; - productName = Common; - productReference = 1EBC4D502BB1B6840053E2F3 /* Common.framework */; - productType = "com.apple.product-type.framework"; - }; 1EC102BC2BAC66050026BD42 /* OuisyncFileProvider */ = { isa = PBXNativeTarget; buildConfigurationList = 1EC102CB2BAC66050026BD42 /* Build configuration list for PBXNativeTarget "OuisyncFileProvider" */; @@ -482,15 +268,14 @@ 1EC102B92BAC66050026BD42 /* Sources */, 1EC102BA2BAC66050026BD42 /* Frameworks */, 1EC102BB2BAC66050026BD42 /* Resources */, - 1786CBFF2CE5CC210055B0EE /* Embed Frameworks */, ); buildRules = ( ); dependencies = ( - 1786CBFE2CE5CC210055B0EE /* PBXTargetDependency */, ); name = OuisyncFileProvider; packageProductDependencies = ( + 170EAE4F2CEE87E800468424 /* OuisyncBackend */, ); productName = OuisyncFileProvider; productReference = 1EC102BD2BAC66050026BD42 /* OuisyncFileProvider.appex */; @@ -504,18 +289,16 @@ 331C80D1294CF70F00263BE5 /* Sources */, 331C80D2294CF70F00263BE5 /* Frameworks */, 331C80D3294CF70F00263BE5 /* Resources */, - 1786CC112CE5D9670055B0EE /* Embed Frameworks */, ); buildRules = ( ); dependencies = ( 17D8E5BA2CE40C00005D70BC /* PBXTargetDependency */, 17D8E5BC2CE40C00005D70BC /* PBXTargetDependency */, - 175AEAE12CE483D900472952 /* PBXTargetDependency */, - 1786CC102CE5D9670055B0EE /* PBXTargetDependency */, ); name = RunnerTests; packageProductDependencies = ( + 170EAE4B2CEE87D700468424 /* OuisyncBackend */, ); productName = RunnerTests; productReference = 331C80D5294CF71000263BE5 /* RunnerTests.xctest */; @@ -527,10 +310,10 @@ buildPhases = ( 82F0B81C14E3F68A07D82AEC /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, + 96B17C14719DCB83218A0FC2 /* [CP] Embed Pods Frameworks */, 33CC10EA2044A3C60003C045 /* Frameworks */, - 33CC10EB2044A3C60003C045 /* Resources */, 3399D490228B24CF009A79C7 /* ShellScript */, - 96B17C14719DCB83218A0FC2 /* [CP] Embed Pods Frameworks */, + 33CC10EB2044A3C60003C045 /* Resources */, 178033712CE492C100291248 /* Embed Foundation Extensions */, ); buildRules = ( @@ -542,6 +325,7 @@ name = Runner; packageProductDependencies = ( 17DC402A2CEA92E0009C21A0 /* LaunchAtLogin */, + 170EAE492CEE87CC00468424 /* OuisyncCommon */, ); productName = Runner; productReference = 33CC10ED2044A3C60003C045 /* Ouisync.app */; @@ -555,15 +339,9 @@ attributes = { BuildIndependentTargetsInParallel = YES; LastSwiftUpdateCheck = 1530; - LastUpgradeCheck = 1520; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = ""; TargetAttributes = { - 17D8E5C32CE47C13005D70BC = { - CreatedOnToolsVersion = 15.2; - }; - 1EBC4D4F2BB1B6840053E2F3 = { - CreatedOnToolsVersion = 15.3; - }; 1EC102BC2BAC66050026BD42 = { CreatedOnToolsVersion = 15.3; }; @@ -598,6 +376,8 @@ packageReferences = ( 76A41C0C2C9D7C3C004D5A58 /* XCLocalSwiftPackageReference "../ouisync/bindings/swift/OuisyncLib" */, 177064312CBEDB00003FEF6C /* XCRemoteSwiftPackageReference "LaunchAtLogin" */, + 1746A9522CEE35BC00C5E5E7 /* XCLocalSwiftPackageReference "../darwin/OuisyncCommon" */, + 175A7AFB2CEE82CA001E7ECE /* XCLocalSwiftPackageReference "../darwin/OuisyncBackend" */, ); productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; projectDirPath = ""; @@ -607,27 +387,11 @@ 331C80D4294CF70F00263BE5 /* RunnerTests */, 33CC111A2044C6BA0003C045 /* Flutter Assemble */, 1EC102BC2BAC66050026BD42 /* OuisyncFileProvider */, - 1EBC4D4F2BB1B6840053E2F3 /* Common */, - 17D8E5C32CE47C13005D70BC /* Backend */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 17D8E5C22CE47C13005D70BC /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1EBC4D4E2BB1B6840053E2F3 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 1EC102BB2BAC66050026BD42 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -647,7 +411,7 @@ buildActionMask = 2147483647; files = ( 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */, - 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */, + 17FED8DD2D026D3F00F136DC /* MainMenu.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -690,7 +454,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; + shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire\n"; }; 50ED327060E569CA2EC416FC /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; @@ -756,35 +520,6 @@ /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 17D8E5C02CE47C13005D70BC /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 17D8E5D52CE47C65005D70BC /* ExtError.swift in Sources */, - 17D8E5DA2CE47C69005D70BC /* Item.swift in Sources */, - 175AEAD02CE47FFF00472952 /* Log.swift in Sources */, - 17D8E5D82CE47C65005D70BC /* Anchor.swift in Sources */, - 17D8E5DC2CE47C69005D70BC /* Enumerator.swift in Sources */, - 17D8E5D62CE47C65005D70BC /* Version.swift in Sources */, - 17D8E5D22CE47C65005D70BC /* Hash.swift in Sources */, - 17D8E5DB2CE47C69005D70BC /* Extension.swift in Sources */, - 17D8E5D42CE47C65005D70BC /* Debug.swift in Sources */, - 17D8E5D72CE47C65005D70BC /* Path.swift in Sources */, - 17D8E5D92CE47C69005D70BC /* Extension+Servicing.swift in Sources */, - 17D8E5D32CE47C65005D70BC /* ItemIdentifier.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1EBC4D4C2BB1B6840053E2F3 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 1EE048512C4FB4BC00A653F2 /* Directories.swift in Sources */, - 1E76A0412BB3028600CB6BBE /* FileProviderServiceProtocol.swift in Sources */, - 1ECD785B2C0DC0DF005D7636 /* SuccessfulTask.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 1EC102B92BAC66050026BD42 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -816,26 +551,11 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 175AEAE12CE483D900472952 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1EBC4D4F2BB1B6840053E2F3 /* Common */; - targetProxy = 175AEAE02CE483D900472952 /* PBXContainerItemProxy */; - }; 178033702CE492C100291248 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 1EC102BC2BAC66050026BD42 /* OuisyncFileProvider */; targetProxy = 1780336F2CE492C100291248 /* PBXContainerItemProxy */; }; - 1786CBFE2CE5CC210055B0EE /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 17D8E5C32CE47C13005D70BC /* Backend */; - targetProxy = 1786CBFD2CE5CC210055B0EE /* PBXContainerItemProxy */; - }; - 1786CC102CE5D9670055B0EE /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 17D8E5C32CE47C13005D70BC /* Backend */; - targetProxy = 1786CC0F2CE5D9670055B0EE /* PBXContainerItemProxy */; - }; 17D8E5BA2CE40C00005D70BC /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 1EC102BC2BAC66050026BD42 /* OuisyncFileProvider */; @@ -846,11 +566,6 @@ target = 33CC10EC2044A3C60003C045 /* Runner */; targetProxy = 17D8E5BB2CE40C00005D70BC /* PBXContainerItemProxy */; }; - 17DC402F2CEA940D009C21A0 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 1EBC4D4F2BB1B6840053E2F3 /* Common */; - targetProxy = 17DC402E2CEA940D009C21A0 /* PBXContainerItemProxy */; - }; 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; @@ -859,529 +574,17 @@ /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ - 33CC10F42044A3C60003C045 /* MainMenu.xib */ = { + 179DC58B2D0257DF007B4647 /* MainMenu.xib */ = { isa = PBXVariantGroup; children = ( - 33CC10F52044A3C60003C045 /* Base */, + 179DC58C2D0257DF007B4647 /* Base */, ); name = MainMenu.xib; - path = Runner; sourceTree = ""; }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ - 17D8E5CF2CE47C13005D70BC /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Apple Development"; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = 5SR9R72Z83; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "\"${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}\"", - /usr/lib/swift, - "$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)/", - "$(SDKROOT)/usr/lib/swift", - ); - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MACOSX_DEPLOYMENT_TARGET = 13.0; - MARKETING_VERSION = 1.0; - MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; - MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-framework", - "\"Foundation\"", - "-framework", - "\"Sentry\"", - "-framework", - "\"biometric_storage\"", - "-framework", - "\"connectivity_plus\"", - "-framework", - "\"cryptography_flutter\"", - "-framework", - "\"desktop_drop\"", - "-framework", - "\"device_info_plus\"", - "-framework", - "\"flutter_secure_storage_macos\"", - "-framework", - "\"local_auth_darwin\"", - "-framework", - "\"mobile_scanner\"", - "-framework", - "\"network_info_plus\"", - "-framework", - "\"ouisync\"", - "-framework", - "\"package_info_plus\"", - "-framework", - "\"path_provider_foundation\"", - "-framework", - "\"screen_retriever\"", - "-framework", - "\"sentry_flutter\"", - "-framework", - "\"share_plus\"", - "-framework", - "\"shared_preferences_foundation\"", - "-framework", - "\"system_tray\"", - "-framework", - "\"url_launcher_macos\"", - "-framework", - "\"webview_flutter_wkwebview\"", - "-framework", - "\"window_manager\"", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.equalitie.ouisync.Backend; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 17D8E5D02CE47C13005D70BC /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Apple Development"; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = 5SR9R72Z83; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "\"${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}\"", - /usr/lib/swift, - "$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)/", - "$(SDKROOT)/usr/lib/swift", - ); - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MACOSX_DEPLOYMENT_TARGET = 13.0; - MARKETING_VERSION = 1.0; - MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; - MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; - MTL_FAST_MATH = YES; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-framework", - "\"Foundation\"", - "-framework", - "\"Sentry\"", - "-framework", - "\"biometric_storage\"", - "-framework", - "\"connectivity_plus\"", - "-framework", - "\"cryptography_flutter\"", - "-framework", - "\"desktop_drop\"", - "-framework", - "\"device_info_plus\"", - "-framework", - "\"flutter_secure_storage_macos\"", - "-framework", - "\"local_auth_darwin\"", - "-framework", - "\"mobile_scanner\"", - "-framework", - "\"network_info_plus\"", - "-framework", - "\"ouisync\"", - "-framework", - "\"package_info_plus\"", - "-framework", - "\"path_provider_foundation\"", - "-framework", - "\"screen_retriever\"", - "-framework", - "\"sentry_flutter\"", - "-framework", - "\"share_plus\"", - "-framework", - "\"shared_preferences_foundation\"", - "-framework", - "\"system_tray\"", - "-framework", - "\"url_launcher_macos\"", - "-framework", - "\"webview_flutter_wkwebview\"", - "-framework", - "\"window_manager\"", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.equalitie.ouisync.Backend; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 17D8E5D12CE47C13005D70BC /* Profile */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Apple Development"; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = 5SR9R72Z83; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "\"${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}\"", - /usr/lib/swift, - "$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)/", - "$(SDKROOT)/usr/lib/swift", - ); - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MACOSX_DEPLOYMENT_TARGET = 13.0; - MARKETING_VERSION = 1.0; - MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; - MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; - MTL_FAST_MATH = YES; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-framework", - "\"Foundation\"", - "-framework", - "\"Sentry\"", - "-framework", - "\"biometric_storage\"", - "-framework", - "\"connectivity_plus\"", - "-framework", - "\"cryptography_flutter\"", - "-framework", - "\"desktop_drop\"", - "-framework", - "\"device_info_plus\"", - "-framework", - "\"flutter_secure_storage_macos\"", - "-framework", - "\"local_auth_darwin\"", - "-framework", - "\"mobile_scanner\"", - "-framework", - "\"network_info_plus\"", - "-framework", - "\"ouisync\"", - "-framework", - "\"package_info_plus\"", - "-framework", - "\"path_provider_foundation\"", - "-framework", - "\"screen_retriever\"", - "-framework", - "\"sentry_flutter\"", - "-framework", - "\"share_plus\"", - "-framework", - "\"shared_preferences_foundation\"", - "-framework", - "\"system_tray\"", - "-framework", - "\"url_launcher_macos\"", - "-framework", - "\"webview_flutter_wkwebview\"", - "-framework", - "\"window_manager\"", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.equalitie.ouisync.Backend; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Profile; - }; - 1EBC4D682BB1B6850053E2F3 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - BUILD_LIBRARY_FOR_DISTRIBUTION = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Apple Development"; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - DEFINES_MODULE = NO; - DEVELOPMENT_TEAM = 5SR9R72Z83; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = ( - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MACOSX_DEPLOYMENT_TARGET = 13.0; - MARKETING_VERSION = 1.0; - MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; - MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - OTHER_LDFLAGS = ""; - PRODUCT_BUNDLE_IDENTIFIER = org.equalitie.ouisync.Common; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = auto; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = macosx; - SUPPORTS_MACCATALYST = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_INSTALL_OBJC_HEADER = NO; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 1EBC4D692BB1B6850053E2F3 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - BUILD_LIBRARY_FOR_DISTRIBUTION = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Apple Development"; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - DEFINES_MODULE = NO; - DEVELOPMENT_TEAM = 5SR9R72Z83; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = ( - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MACOSX_DEPLOYMENT_TARGET = 13.0; - MARKETING_VERSION = 1.0; - MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; - MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; - MTL_FAST_MATH = YES; - OTHER_LDFLAGS = ""; - PRODUCT_BUNDLE_IDENTIFIER = org.equalitie.ouisync.Common; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = auto; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = macosx; - SUPPORTS_MACCATALYST = NO; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_INSTALL_OBJC_HEADER = NO; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 1EBC4D6A2BB1B6850053E2F3 /* Profile */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALLOW_TARGET_PLATFORM_SPECIALIZATION = YES; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - BUILD_LIBRARY_FOR_DISTRIBUTION = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Apple Development"; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - DEFINES_MODULE = NO; - DEVELOPMENT_TEAM = 5SR9R72Z83; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = YES; - ENABLE_USER_SCRIPT_SANDBOXING = YES; - GCC_C_LANGUAGE_STANDARD = gnu17; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = ( - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MACOSX_DEPLOYMENT_TARGET = 13.0; - MARKETING_VERSION = 1.0; - MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; - MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; - MTL_FAST_MATH = YES; - OTHER_LDFLAGS = ""; - PRODUCT_BUNDLE_IDENTIFIER = org.equalitie.ouisync.Common; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = auto; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = macosx; - SUPPORTS_MACCATALYST = NO; - SWIFT_EMIT_LOC_STRINGS = YES; - SWIFT_INSTALL_OBJC_HEADER = NO; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Profile; - }; 1EC102CC2BAC66050026BD42 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1399,7 +602,6 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 64; DEAD_CODE_STRIPPING = YES; DEFINES_MODULE = NO; DEVELOPMENT_TEAM = 5SR9R72Z83; @@ -1410,7 +612,6 @@ GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = Extension/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = OuisyncFileProvider; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", @@ -1423,7 +624,6 @@ ); LOCALIZATION_PREFERS_STRING_CATALOGS = YES; MACOSX_DEPLOYMENT_TARGET = 13.0; - MARKETING_VERSION = 0.8.1; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; OTHER_LDFLAGS = ""; @@ -1454,7 +654,6 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 64; DEAD_CODE_STRIPPING = YES; DEFINES_MODULE = NO; DEVELOPMENT_TEAM = 5SR9R72Z83; @@ -1465,7 +664,6 @@ GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = Extension/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = OuisyncFileProvider; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", @@ -1478,7 +676,6 @@ ); LOCALIZATION_PREFERS_STRING_CATALOGS = YES; MACOSX_DEPLOYMENT_TARGET = 13.0; - MARKETING_VERSION = 0.8.1; MTL_FAST_MATH = YES; OTHER_LDFLAGS = ""; PRODUCT_BUNDLE_IDENTIFIER = org.equalitie.ouisync.OuisyncFileProvider; @@ -1507,7 +704,6 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 64; DEAD_CODE_STRIPPING = YES; DEFINES_MODULE = NO; DEVELOPMENT_TEAM = 5SR9R72Z83; @@ -1518,7 +714,6 @@ GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = Extension/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = OuisyncFileProvider; - INFOPLIST_KEY_NSHumanReadableCopyright = ""; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", @@ -1531,7 +726,6 @@ ); LOCALIZATION_PREFERS_STRING_CATALOGS = YES; MACOSX_DEPLOYMENT_TARGET = 13.0; - MARKETING_VERSION = 0.8.1; MTL_FAST_MATH = YES; OTHER_LDFLAGS = ""; PRODUCT_BUNDLE_IDENTIFIER = org.equalitie.ouisync.OuisyncFileProvider; @@ -1634,6 +828,7 @@ CLANG_WARN_SUSPICIOUS_MOVE = YES; CODE_SIGN_IDENTITY = "-"; COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; @@ -1647,6 +842,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 13.0; + MARKETING_VERSION = "$(FLUTTER_BUILD_NAME)"; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = macosx; SWIFT_COMPILATION_MODE = wholemodule; @@ -1660,13 +856,16 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_ENTITLEMENTS = Runner/Entitlements.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = 5SR9R72Z83; + ENABLE_HARDENED_RUNTIME = YES; INFOPLIST_FILE = Runner/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = Ouisync; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", @@ -1674,7 +873,6 @@ MACOSX_DEPLOYMENT_TARGET = 13.0; PRODUCT_BUNDLE_IDENTIFIER = org.equalitie.ouisync; PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_OBJC_BRIDGING_HEADER = Runner/FileProviderProxy.h; SWIFT_PRECOMPILE_BRIDGING_HEADER = YES; SWIFT_VERSION = 5.0; }; @@ -1718,6 +916,7 @@ CLANG_WARN_SUSPICIOUS_MOVE = YES; CODE_SIGN_IDENTITY = "-"; COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -1736,6 +935,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 13.0; + MARKETING_VERSION = "$(FLUTTER_BUILD_NAME)"; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; @@ -1772,6 +972,7 @@ CLANG_WARN_SUSPICIOUS_MOVE = YES; CODE_SIGN_IDENTITY = "-"; COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; DEAD_CODE_STRIPPING = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; @@ -1785,6 +986,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 13.0; + MARKETING_VERSION = "$(FLUTTER_BUILD_NAME)"; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = macosx; SWIFT_COMPILATION_MODE = wholemodule; @@ -1798,13 +1000,16 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_ENTITLEMENTS = Runner/Entitlements.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = 5SR9R72Z83; + ENABLE_HARDENED_RUNTIME = YES; INFOPLIST_FILE = Runner/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = Ouisync; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", @@ -1812,7 +1017,6 @@ MACOSX_DEPLOYMENT_TARGET = 13.0; PRODUCT_BUNDLE_IDENTIFIER = org.equalitie.ouisync; PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_OBJC_BRIDGING_HEADER = Runner/FileProviderProxy.h; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_PRECOMPILE_BRIDGING_HEADER = YES; SWIFT_VERSION = 5.0; @@ -1825,13 +1029,16 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; + CODE_SIGN_ENTITLEMENTS = Runner/Entitlements.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = 5SR9R72Z83; + ENABLE_HARDENED_RUNTIME = YES; INFOPLIST_FILE = Runner/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = Ouisync; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", @@ -1839,7 +1046,6 @@ MACOSX_DEPLOYMENT_TARGET = 13.0; PRODUCT_BUNDLE_IDENTIFIER = org.equalitie.ouisync; PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_OBJC_BRIDGING_HEADER = Runner/FileProviderProxy.h; SWIFT_PRECOMPILE_BRIDGING_HEADER = YES; SWIFT_VERSION = 5.0; }; @@ -1868,26 +1074,6 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 17D8E5CE2CE47C13005D70BC /* Build configuration list for PBXNativeTarget "Backend" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 17D8E5CF2CE47C13005D70BC /* Debug */, - 17D8E5D02CE47C13005D70BC /* Release */, - 17D8E5D12CE47C13005D70BC /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 1EBC4D672BB1B6850053E2F3 /* Build configuration list for PBXNativeTarget "Common" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1EBC4D682BB1B6850053E2F3 /* Debug */, - 1EBC4D692BB1B6850053E2F3 /* Release */, - 1EBC4D6A2BB1B6850053E2F3 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 1EC102CB2BAC66050026BD42 /* Build configuration list for PBXNativeTarget "OuisyncFileProvider" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -1941,6 +1127,14 @@ /* End XCConfigurationList section */ /* Begin XCLocalSwiftPackageReference section */ + 1746A9522CEE35BC00C5E5E7 /* XCLocalSwiftPackageReference "../darwin/OuisyncCommon" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = ../darwin/OuisyncCommon; + }; + 175A7AFB2CEE82CA001E7ECE /* XCLocalSwiftPackageReference "../darwin/OuisyncBackend" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = ../darwin/OuisyncBackend; + }; 76A41C0C2C9D7C3C004D5A58 /* XCLocalSwiftPackageReference "../ouisync/bindings/swift/OuisyncLib" */ = { isa = XCLocalSwiftPackageReference; relativePath = ../ouisync/bindings/swift/OuisyncLib; @@ -1959,9 +1153,20 @@ /* End XCRemoteSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ - 17DC40272CEA9188009C21A0 /* OuisyncLib */ = { + 170EAE492CEE87CC00468424 /* OuisyncCommon */ = { + isa = XCSwiftPackageProductDependency; + package = 1746A9522CEE35BC00C5E5E7 /* XCLocalSwiftPackageReference "../darwin/OuisyncCommon" */; + productName = OuisyncCommon; + }; + 170EAE4B2CEE87D700468424 /* OuisyncBackend */ = { + isa = XCSwiftPackageProductDependency; + package = 175A7AFB2CEE82CA001E7ECE /* XCLocalSwiftPackageReference "../darwin/OuisyncBackend" */; + productName = OuisyncBackend; + }; + 170EAE4F2CEE87E800468424 /* OuisyncBackend */ = { isa = XCSwiftPackageProductDependency; - productName = OuisyncLib; + package = 175A7AFB2CEE82CA001E7ECE /* XCLocalSwiftPackageReference "../darwin/OuisyncBackend" */; + productName = OuisyncBackend; }; 17DC402A2CEA92E0009C21A0 /* LaunchAtLogin */ = { isa = XCSwiftPackageProductDependency; diff --git a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 0a03a32e2..6181f340c 100644 --- a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ + location = "group:../darwin/OuisyncBackend"> + + + + diff --git a/macos/Runner/AppDelegate.swift b/macos/Runner/AppDelegate.swift index 5e95c173b..0869ca81e 100644 --- a/macos/Runner/AppDelegate.swift +++ b/macos/Runner/AppDelegate.swift @@ -1,43 +1,9 @@ -import Cocoa -import FlutterMacOS import AppKit -import OSLog - - -// https://developer.apple.com/documentation/uikit/uiapplicationdelegate -@main -class AppDelegate: FlutterAppDelegate { -// var fileProviderProxy: FileProviderProxy?; +import FlutterMacOS - override init() { - super.init() - } -// override func applicationDidFinishLaunching(_ notification: Notification) { -// if fileProviderProxy == nil { -// fileProviderProxy = FileProviderProxy() -// } -// } -// +@main class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return false } - -// override func applicationWillTerminate(_ notification: Notification) { -// // This removes the file provider from Finder when Ouisync exits cleanly -// if let proxy = fileProviderProxy { -// let semaphore = DispatchSemaphore(value: 0) -// Task.detached { -// do { -// try await proxy.invalidate() -// } catch { -// NSLog("😡 Failed to stop ouisync file provider extension") -// } -// semaphore.signal() -// } -// semaphore.wait() -// } -// -// super.applicationWillTerminate(notification) -// } } diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/1024.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/1024.png new file mode 100644 index 000000000..ba35556d0 Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/1024.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/128.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/128.png new file mode 100644 index 000000000..1a6fb5099 Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/128.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/16.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/16.png new file mode 100644 index 000000000..d06b338e2 Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/16.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/256.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/256.png new file mode 100644 index 000000000..b186f226e Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/256.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/32.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/32.png new file mode 100644 index 000000000..10fb48e8b Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/32.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/512.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/512.png new file mode 100644 index 000000000..5989a3ea8 Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/512.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/64.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/64.png new file mode 100644 index 000000000..ee85301f2 Binary files /dev/null and b/macos/Runner/Assets.xcassets/AppIcon.appiconset/64.png differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json index a2ec33f19..f365cdfad 100644 --- a/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,68 +1,68 @@ { "images" : [ { - "size" : "16x16", + "filename": "16.png", "idiom" : "mac", - "filename" : "app_icon_16.png", - "scale" : "1x" + "scale" : "1x", + "size" : "16x16" }, { - "size" : "16x16", + "filename": "32.png", "idiom" : "mac", - "filename" : "app_icon_32.png", - "scale" : "2x" + "scale" : "2x", + "size" : "16x16" }, { - "size" : "32x32", + "filename": "32.png", "idiom" : "mac", - "filename" : "app_icon_32.png", - "scale" : "1x" + "scale" : "1x", + "size" : "32x32" }, { - "size" : "32x32", + "filename": "64.png", "idiom" : "mac", - "filename" : "app_icon_64.png", - "scale" : "2x" + "scale" : "2x", + "size" : "32x32" }, { - "size" : "128x128", + "filename": "128.png", "idiom" : "mac", - "filename" : "app_icon_128.png", - "scale" : "1x" + "scale" : "1x", + "size" : "128x128" }, { - "size" : "128x128", + "filename": "256.png", "idiom" : "mac", - "filename" : "app_icon_256.png", - "scale" : "2x" + "scale" : "2x", + "size" : "128x128" }, { - "size" : "256x256", + "filename": "256.png", "idiom" : "mac", - "filename" : "app_icon_256.png", - "scale" : "1x" + "scale" : "1x", + "size" : "256x256" }, { - "size" : "256x256", + "filename": "512.png", "idiom" : "mac", - "filename" : "app_icon_512.png", - "scale" : "2x" + "scale" : "2x", + "size" : "256x256" }, { - "size" : "512x512", + "filename": "512.png", "idiom" : "mac", - "filename" : "app_icon_512.png", - "scale" : "1x" + "scale" : "1x", + "size" : "512x512" }, { - "size" : "512x512", + "filename": "1024.png", "idiom" : "mac", - "filename" : "app_icon_1024.png", - "scale" : "2x" + "scale" : "2x", + "size" : "512x512" } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } } diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png deleted file mode 100644 index 82b6f9d9a..000000000 Binary files a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png and /dev/null differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png deleted file mode 100644 index 13b35eba5..000000000 Binary files a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png and /dev/null differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png deleted file mode 100644 index 0a3f5fa40..000000000 Binary files a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png and /dev/null differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png deleted file mode 100644 index bdb57226d..000000000 Binary files a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png and /dev/null differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png deleted file mode 100644 index f083318e0..000000000 Binary files a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png and /dev/null differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png deleted file mode 100644 index 326c0e72c..000000000 Binary files a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png and /dev/null differ diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png deleted file mode 100644 index 2f1632cfd..000000000 Binary files a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png and /dev/null differ diff --git a/macos/Runner/Assets.xcassets/Contents.json b/macos/Runner/Assets.xcassets/Contents.json new file mode 100644 index 000000000..73c00596a --- /dev/null +++ b/macos/Runner/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/macos/Runner/Base.lproj/MainMenu.xib b/macos/Runner/Base.lproj/MainMenu.xib index 80e867a4e..88514f077 100644 --- a/macos/Runner/Base.lproj/MainMenu.xib +++ b/macos/Runner/Base.lproj/MainMenu.xib @@ -1,8 +1,8 @@ - + - + @@ -13,7 +13,7 @@ - + @@ -330,14 +330,15 @@ - + - + + diff --git a/macos/Runner/DebugProfile.entitlements b/macos/Runner/DebugProfile.entitlements deleted file mode 100644 index 5c46b66ab..000000000 --- a/macos/Runner/DebugProfile.entitlements +++ /dev/null @@ -1,22 +0,0 @@ - - - - - com.apple.security.app-sandbox - - com.apple.security.application-groups - - $(TeamIdentifierPrefix)org.equalitie.ouisync - - com.apple.security.cs.allow-jit - - com.apple.security.network.client - - com.apple.security.network.server - - keychain-access-groups - - $(AppIdentifierPrefix)org.equalitie.ouisync - - - diff --git a/macos/Runner/Release.entitlements b/macos/Runner/Entitlements.entitlements similarity index 100% rename from macos/Runner/Release.entitlements rename to macos/Runner/Entitlements.entitlements diff --git a/macos/Runner/FileProviderProxy.swift b/macos/Runner/FileProviderProxy.swift index 9531334d8..e0ffb77a8 100644 --- a/macos/Runner/FileProviderProxy.swift +++ b/macos/Runner/FileProviderProxy.swift @@ -5,9 +5,8 @@ // Created by Peter Jankuliak on 03/04/2024. // import FileProvider -import Common import FlutterMacOS -import MessagePack +import OuisyncCommon // TODO: this memory copy is unavoidable unless OuisyncLib is updated to use Data (itself [UInt8]-like) @@ -24,7 +23,7 @@ class FileProviderProxy: FromFileProviderToAppProtocol { let channel: FlutterMethodChannel init(_ flutterBinaryMessenger: FlutterBinaryMessenger) { - channel = FlutterMethodChannel(name: "org.equalitie.ouisync/backend", + channel = FlutterMethodChannel(name: Constants.flutterForwardingChannel, binaryMessenger: flutterBinaryMessenger) channel.setMethodCallHandler { [weak self] call, result in guard let self diff --git a/macos/Runner/Info.plist b/macos/Runner/Info.plist index 4789daa6a..34a36666c 100644 --- a/macos/Runner/Info.plist +++ b/macos/Runner/Info.plist @@ -2,6 +2,8 @@ + ITSAppUsesNonExemptEncryption + CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleExecutable @@ -17,9 +19,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - $(FLUTTER_BUILD_NAME) + $(MARKETING_VERSION) CFBundleVersion - $(FLUTTER_BUILD_NUMBER) + $(CURRENT_PROJECT_VERSION) + LSApplicationCategoryType + $(INFOPLIST_KEY_LSApplicationCategoryType) LSMinimumSystemVersion $(MACOSX_DEPLOYMENT_TARGET) NSHumanReadableCopyright diff --git a/macos/Runner/MainFlutterWindow.swift b/macos/Runner/MainFlutterWindow.swift index 3868b6acb..2be347199 100644 --- a/macos/Runner/MainFlutterWindow.swift +++ b/macos/Runner/MainFlutterWindow.swift @@ -1,14 +1,12 @@ -import Cocoa import FlutterMacOS -import Common import FileProvider import LaunchAtLogin +import OuisyncCommon class MainFlutterWindow: NSWindow { var fileProviderProxy: FileProviderProxy? = nil var flutterMethodChannel: FlutterMethodChannel? = nil - let methodChannelName: String = "org.equalitie.ouisync/native" override func awakeFromNib() { let flutterViewController = FlutterViewController() @@ -65,7 +63,7 @@ class MainFlutterWindow: NSWindow { // Setup handing of message from flutter to this app instance // ------------------------------------------------------------------ fileprivate func setupFlutterMethodChannel(_ binaryMessenger: FlutterBinaryMessenger) { - let channel = FlutterMethodChannel(name: methodChannelName, binaryMessenger: binaryMessenger) + let channel = FlutterMethodChannel(name: Constants.flutterConfigChannel, binaryMessenger: binaryMessenger) channel.setMethodCallHandler({ [weak self] (call: FlutterMethodCall, result: @escaping FlutterResult) -> Void in guard let self = self else { return } handleFlutterMethodCall(call, result: result) diff --git a/macos/RunnerTests/RunnerTests.swift b/macos/RunnerTests/RunnerTests.swift new file mode 100644 index 000000000..61f3bd1fc --- /dev/null +++ b/macos/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Cocoa +import FlutterMacOS +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/macos/Tests/Environment.swift b/macos/Tests/Environment.swift index 514d72130..9a92abba9 100644 --- a/macos/Tests/Environment.swift +++ b/macos/Tests/Environment.swift @@ -1,14 +1,14 @@ import XCTest @testable import Ouisync -@testable import Common -@testable import Backend +@testable import OuisyncCommon +@testable import OuisyncBackend class EnvironmentTests: XCTestCase { func testAlwaysOkay() { // never fails once compiled: only serves to validate the environment and target config XCTAssertNotNil(FileProviderProxy.self) // from runner - XCTAssertNotNil(SuccessfulTask.self) // from common + XCTAssertNotNil(FromFileProviderToAppProtocol.self) // from common XCTAssertNotNil(AppToBackendProxy.self) // from extension } } diff --git a/macos/Tests/Shutdown.swift b/macos/Tests/Shutdown.swift index 42240f16b..fee3c2623 100644 --- a/macos/Tests/Shutdown.swift +++ b/macos/Tests/Shutdown.swift @@ -1,6 +1,6 @@ import XCTest -@testable import Common -@testable import Backend +@testable import OuisyncCommon +@testable import OuisyncBackend class ExtensionTest: XCTestCase { @@ -20,4 +20,3 @@ class ExtensionTest: XCTestCase { try await Task.sleep(for: .seconds(5)) } } - diff --git a/ouisync b/ouisync index ec44b2a20..4c59ef126 160000 --- a/ouisync +++ b/ouisync @@ -1 +1 @@ -Subproject commit ec44b2a20c4e3131e07093f2ba9a0cbb9ab010d7 +Subproject commit 4c59ef126e93099f7c580aa70ac9761aa1112528 diff --git a/pubspec.lock b/pubspec.lock index 339c3edb1..3fba572ca 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -42,10 +42,10 @@ packages: dependency: "direct dev" description: name: args - sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" + sha256: bf9f5caeea8d8fe6721a9c358dd8a5c1947b27f1cfaa18b39c301273594919e6 url: "https://pub.dev" source: hosted - version: "2.5.0" + version: "2.6.0" async: dependency: "direct main" description: @@ -146,10 +146,10 @@ packages: dependency: "direct dev" description: name: build_runner - sha256: dd09dd4e2b078992f42aac7f1a622f01882a8492fef08486b27ddde929c19f04 + sha256: "028819cfb90051c6b5440c7e574d1896f8037e3c96cf17aaeb054c9311cfbf4d" url: "https://pub.dev" source: hosted - version: "2.4.12" + version: "2.4.13" build_runner_core: dependency: transitive description: @@ -194,10 +194,10 @@ packages: dependency: transitive description: name: cli_util - sha256: c05b7406fdabc7a49a3929d4af76bcaccbbffcbcdcf185b082e1ae07da323d19 + sha256: ff6785f7e9e3c38ac98b2fb035701789de90154024a75b6cb926445e83197d1c url: "https://pub.dev" source: hosted - version: "0.4.1" + version: "0.4.2" clock: dependency: transitive description: @@ -210,10 +210,10 @@ packages: dependency: transitive description: name: code_builder - sha256: f692079e25e7869c14132d39f223f8eec9830eb76131925143b2129c4bb01b37 + sha256: "0ec10bf4a89e4c613960bf1e8b42c64127021740fb21640c29c909826a5eea3e" url: "https://pub.dev" source: hosted - version: "4.10.0" + version: "4.10.1" collection: dependency: "direct main" description: @@ -226,10 +226,10 @@ packages: dependency: "direct main" description: name: connectivity_plus - sha256: "2056db5241f96cdc0126bd94459fc4cdc13876753768fc7a31c425e50a7177d0" + sha256: "876849631b0c7dc20f8b471a2a03142841b482438e3b707955464f5ffca3e4c3" url: "https://pub.dev" source: hosted - version: "6.0.5" + version: "6.1.0" connectivity_plus_platform_interface: dependency: transitive description: @@ -250,18 +250,18 @@ packages: dependency: transitive description: name: convert - sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" + sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "3.1.2" coverage: dependency: transitive description: name: coverage - sha256: c1fb2dce3c0085f39dc72668e85f8e0210ec7de05345821ff58530567df345a5 + sha256: "4b03e11f6d5b8f6e5bb5e9f7889a56fe6c5cbe942da5378ea4d4d7f73ef9dfe5" url: "https://pub.dev" source: hosted - version: "1.9.2" + version: "1.11.0" cross_file: dependency: "direct main" description: @@ -274,10 +274,10 @@ packages: dependency: transitive description: name: crypto - sha256: ec30d999af904f33454ba22ed9a86162b35e52b44ac4807d1d93c288041d7d27 + sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855" url: "https://pub.dev" source: hosted - version: "3.0.5" + version: "3.0.6" cryptography: dependency: "direct main" description: @@ -378,10 +378,10 @@ packages: dependency: "direct main" description: name: equatable - sha256: c2b87cb7756efdf69892005af546c56c0b5037f54d2a88269b4f347a505e3ca2 + sha256: "567c64b3cb4cf82397aac55f4f0cbd3ca20d77c6c03bedbc4ceaddc08904aef7" url: "https://pub.dev" source: hosted - version: "2.0.5" + version: "2.0.7" fake_async: dependency: transitive description: @@ -410,18 +410,18 @@ packages: dependency: "direct main" description: name: file_picker - sha256: "167bb619cdddaa10ef2907609feb8a79c16dfa479d3afaf960f8e223f754bf12" + sha256: "16dc141db5a2ccc6520ebb6a2eb5945b1b09e95085c021d9f914f8ded7f1465c" url: "https://pub.dev" source: hosted - version: "8.1.2" + version: "8.1.4" fixnum: dependency: transitive description: name: fixnum - sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1" + sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.1.1" flutter: dependency: "direct main" description: flutter @@ -529,10 +529,10 @@ packages: dependency: "direct main" description: name: flutter_loggy - sha256: c758629403e19115af198993ff7bd3af2c5a337de16ee23acda2e6f29df1db48 + sha256: f7640f2d06e64a6141b2210e18cac3146f30bcb4b92349da53f969f59b78c04b url: "https://pub.dev" source: hosted - version: "2.0.3" + version: "2.0.3+1" flutter_password_strength: dependency: "direct main" description: @@ -545,28 +545,26 @@ packages: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: "9ee02950848f61c4129af3d6ec84a1cfc0e47931abc746b03e7a3bc3e8ff6eda" + sha256: "9b78450b89f059e96c9ebb355fa6b3df1d6b330436e0b885fb49594c41721398" url: "https://pub.dev" source: hosted - version: "2.0.22" + version: "2.0.23" flutter_secure_storage: dependency: "direct main" description: - path: flutter_secure_storage - ref: local-platform-dependencies - resolved-ref: "49386bc9fdeb594e492075374060365ae8b6f005" - url: "https://github.com/inetic/flutter_secure_storage" - source: git - version: "9.0.0" + name: flutter_secure_storage + sha256: "165164745e6afb5c0e3e3fcc72a012fb9e58496fb26ffb92cf22e16a821e85d0" + url: "https://pub.dev" + source: hosted + version: "9.2.2" flutter_secure_storage_linux: dependency: transitive description: - path: flutter_secure_storage_linux - ref: local-platform-dependencies - resolved-ref: "49386bc9fdeb594e492075374060365ae8b6f005" - url: "https://github.com/inetic/flutter_secure_storage" - source: git - version: "1.2.0" + name: flutter_secure_storage_linux + sha256: "4d91bfc23047422cbcd73ac684bc169859ee766482517c22172c86596bf1464b" + url: "https://pub.dev" + source: hosted + version: "1.2.1" flutter_secure_storage_macos: dependency: transitive description: @@ -722,10 +720,10 @@ packages: dependency: "direct dev" description: name: image - sha256: "2237616a36c0d69aef7549ab439b833fb7f9fb9fc861af2cc9ac3eedddd69ca8" + sha256: f31d52537dc417fdcde36088fdf11d191026fd5e4fae742491ebd40e5a8bea7d url: "https://pub.dev" source: hosted - version: "4.2.0" + version: "4.3.0" integration_test: dependency: "direct dev" description: flutter @@ -839,18 +837,18 @@ packages: dependency: transitive description: name: local_auth_android - sha256: e9a3c321e94359a552b1bdd0f98f79885f2b3e27234d270f9bef5cd82b29340c + sha256: "6763aaf8965f21822624cb2fd3c03d2a8b3791037b5efb0fe4b13e110f5afc92" url: "https://pub.dev" source: hosted - version: "1.0.44" + version: "1.0.46" local_auth_darwin: dependency: transitive description: name: local_auth_darwin - sha256: "7ba5738c874ca2b910d72385d00d2bebad9d4e807612936cf5e32bc01a048c71" + sha256: "6d2950da311d26d492a89aeb247c72b4653ddc93601ea36a84924a396806d49c" url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.4.1" local_auth_platform_interface: dependency: transitive description: @@ -879,10 +877,10 @@ packages: dependency: transitive description: name: logging - sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340" + sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.3.0" loggy: dependency: "direct main" description: @@ -992,10 +990,10 @@ packages: dependency: "direct main" description: name: network_info_plus - sha256: "6a31fa47c1f6e240f1b60de0a57d65a092ac1af7515247660f03643576984eb8" + sha256: bf9e39e523e9951d741868dc33ac386b0bc24301e9b7c8a7d60dbc34879150a8 url: "https://pub.dev" source: hosted - version: "6.0.1" + version: "6.1.1" network_info_plus_platform_interface: dependency: transitive description: @@ -1039,10 +1037,10 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: a75164ade98cb7d24cfd0a13c6408927c6b217fa60dee5a7ff5c116a58f28918 + sha256: da8d9ac8c4b1df253d1a328b7bf01ae77ef132833479ab40763334db13b91cce url: "https://pub.dev" source: hosted - version: "8.0.2" + version: "8.1.1" package_info_plus_platform_interface: dependency: transitive description: @@ -1063,18 +1061,18 @@ packages: dependency: "direct main" description: name: path_provider - sha256: fec0d61223fba3154d87759e3cc27fe2c8dc498f6386c6d6fc80d1afdd1bf378 + sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd" url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.1.5" path_provider_android: dependency: transitive description: name: path_provider_android - sha256: "6f01f8e37ec30b07bc424b4deabac37cacb1bc7e2e515ad74486039918a37eb7" + sha256: "8c4967f8b7cb46dc914e178daa29813d83ae502e0529d7b0478330616a691ef7" url: "https://pub.dev" source: hosted - version: "2.2.10" + version: "2.2.14" path_provider_foundation: dependency: transitive description: @@ -1119,10 +1117,10 @@ packages: dependency: "direct main" description: name: percent_indicator - sha256: c37099ad833a883c9d71782321cb65c3a848c21b6939b6185f0ff6640d05814c + sha256: "0d77d5c6fa9b7f60202cedf748b568ba9ba38d3f30405d6ceae4da76f5185462" url: "https://pub.dev" source: hosted - version: "4.2.3" + version: "4.2.4" permission_handler: dependency: "direct main" description: @@ -1135,10 +1133,10 @@ packages: dependency: transitive description: name: permission_handler_android - sha256: "76e4ab092c1b240d31177bb64d2b0bea43f43d0e23541ec866151b9f7b2490fa" + sha256: "71bbecfee799e65aff7c744761a57e817e73b738fedf62ab7afd5593da21f9f1" url: "https://pub.dev" source: hosted - version: "12.0.12" + version: "12.0.13" permission_handler_apple: dependency: transitive description: @@ -1151,10 +1149,10 @@ packages: dependency: transitive description: name: permission_handler_html - sha256: af26edbbb1f2674af65a8f4b56e1a6f526156bc273d0e65dd8075fab51c78851 + sha256: "38f000e83355abb3392140f6bc3030660cfaef189e1f87824facb76300b4ff24" url: "https://pub.dev" source: hosted - version: "0.1.3+2" + version: "0.1.3+5" permission_handler_platform_interface: dependency: transitive description: @@ -1263,10 +1261,10 @@ packages: dependency: "direct main" description: name: receive_sharing_intent - sha256: f127989f8662ea15e193bd1e10605e5a0ab6bb92dffd51f3ce002feb0ce24c93 + sha256: ec76056e4d258ad708e76d85591d933678625318e411564dcb9059048ca3a593 url: "https://pub.dev" source: hosted - version: "1.8.0" + version: "1.8.1" result_type: dependency: "direct main" description: @@ -1275,38 +1273,62 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.0" - rxdart: + screen_retriever: dependency: transitive description: - name: rxdart - sha256: "0c7c0cedd93788d996e33041ffecda924cc54389199cde4e6a34b440f50044cb" + name: screen_retriever + sha256: "570dbc8e4f70bac451e0efc9c9bb19fa2d6799a11e6ef04f946d7886d2e23d0c" url: "https://pub.dev" source: hosted - version: "0.27.7" - screen_retriever: + version: "0.2.0" + screen_retriever_linux: dependency: transitive description: - name: screen_retriever - sha256: "6ee02c8a1158e6dae7ca430da79436e3b1c9563c8cf02f524af997c201ac2b90" + name: screen_retriever_linux + sha256: f7f8120c92ef0784e58491ab664d01efda79a922b025ff286e29aa123ea3dd18 + url: "https://pub.dev" + source: hosted + version: "0.2.0" + screen_retriever_macos: + dependency: transitive + description: + name: screen_retriever_macos + sha256: "71f956e65c97315dd661d71f828708bd97b6d358e776f1a30d5aa7d22d78a149" + url: "https://pub.dev" + source: hosted + version: "0.2.0" + screen_retriever_platform_interface: + dependency: transitive + description: + name: screen_retriever_platform_interface + sha256: ee197f4581ff0d5608587819af40490748e1e39e648d7680ecf95c05197240c0 + url: "https://pub.dev" + source: hosted + version: "0.2.0" + screen_retriever_windows: + dependency: transitive + description: + name: screen_retriever_windows + sha256: "449ee257f03ca98a57288ee526a301a430a344a161f9202b4fcc38576716fe13" url: "https://pub.dev" source: hosted - version: "0.1.9" + version: "0.2.0" sentry: dependency: transitive description: name: sentry - sha256: "033287044a6644a93498969449d57c37907e56f5cedb17b88a3ff20a882261dd" + sha256: "2440763ae96fa8fd1bcdfc224f5232e1b7a09af76a72f4e626ee313a261faf6f" url: "https://pub.dev" source: hosted - version: "8.9.0" + version: "8.10.1" sentry_flutter: dependency: "direct main" description: name: sentry_flutter - sha256: "3780b5a0bb6afd476857cfbc6c7444d969c29a4d9bd1aa5b6960aa76c65b737a" + sha256: "3b30038b3b9303540a8b2c8b1c8f0bb93a207f8e4b25691c59d969ddeb4734fd" url: "https://pub.dev" source: hosted - version: "8.9.0" + version: "8.10.1" settings_ui: dependency: "direct main" description: @@ -1319,42 +1341,42 @@ packages: dependency: "direct main" description: name: share_plus - sha256: "468c43f285207c84bcabf5737f33b914ceb8eb38398b91e5e3ad1698d1b72a52" + sha256: "9c9bafd4060728d7cdb2464c341743adbd79d327cb067ec7afb64583540b47c8" url: "https://pub.dev" source: hosted - version: "10.0.2" + version: "10.1.2" share_plus_platform_interface: dependency: transitive description: name: share_plus_platform_interface - sha256: "6ababf341050edff57da8b6990f11f4e99eaba837865e2e6defe16d039619db5" + sha256: c57c0bbfec7142e3a0f55633be504b796af72e60e3c791b44d5a017b985f7a48 url: "https://pub.dev" source: hosted - version: "5.0.0" + version: "5.0.1" shared_preferences: dependency: "direct main" description: name: shared_preferences - sha256: "746e5369a43170c25816cc472ee016d3a66bc13fcf430c0bc41ad7b4b2922051" + sha256: "95f9997ca1fb9799d494d0cb2a780fd7be075818d59f00c43832ed112b158a82" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.3.3" shared_preferences_android: dependency: transitive description: name: shared_preferences_android - sha256: "480ba4345773f56acda9abf5f50bd966f581dac5d514e5fc4a18c62976bbba7e" + sha256: "3b9febd815c9ca29c9e3520d50ec32f49157711e143b7a4ca039eb87e8ade5ab" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.3.3" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: c4b35f6cb8f63c147312c054ce7c2254c8066745125264f0c88739c417fc9d9f + sha256: "07e050c7cd39bad516f8d64c455f04508d09df104be326d8c02551590a0d513d" url: "https://pub.dev" source: hosted - version: "2.5.2" + version: "2.5.3" shared_preferences_linux: dependency: transitive description: @@ -1415,10 +1437,10 @@ packages: dependency: transitive description: name: shelf_web_socket - sha256: "073c147238594ecd0d193f3456a5fe91c4b0abbcc68bf5cd95b36c4e194ac611" + sha256: cc36c297b52866d203dbf9332263c94becc2fe0ceaa9681d07b6ef9807023b67 url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "2.0.1" sky_engine: dependency: transitive description: flutter @@ -1548,10 +1570,10 @@ packages: dependency: transitive description: name: typed_data - sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c + sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 url: "https://pub.dev" source: hosted - version: "1.3.2" + version: "1.4.0" udp: dependency: "direct main" description: @@ -1572,18 +1594,18 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: "21b704ce5fa560ea9f3b525b43601c678728ba46725bab9b01187b4831377ed3" + sha256: "9d06212b1362abc2f0f0d78e6f09f726608c74e3b9462e8368bb03314aa8d603" url: "https://pub.dev" source: hosted - version: "6.3.0" + version: "6.3.1" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: e35a698ac302dd68e41f73250bd9517fe3ab5fa4f18fe4647a0872db61bacbab + sha256: "6fc2f56536ee873eeb867ad176ae15f304ccccc357848b351f6f0d8d4a40d193" url: "https://pub.dev" source: hosted - version: "6.3.10" + version: "6.3.14" url_launcher_ios: dependency: transitive description: @@ -1596,18 +1618,18 @@ packages: dependency: transitive description: name: url_launcher_linux - sha256: e2b9622b4007f97f504cd64c0128309dfb978ae66adbe944125ed9e1750f06af + sha256: "4e9ba368772369e3e08f231d2301b4ef72b9ff87c31192ef471b380ef29a4935" url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "3.2.1" url_launcher_macos: dependency: transitive description: name: url_launcher_macos - sha256: "9a1a42d5d2d95400c795b2914c36fdcb525870c752569438e4ebb09a2b5d90de" + sha256: "769549c999acdb42b8bcfa7c43d72bf79a382ca7441ab18a808e101149daf672" url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "3.2.1" url_launcher_platform_interface: dependency: transitive description: @@ -1628,10 +1650,10 @@ packages: dependency: transitive description: name: url_launcher_windows - sha256: "49c10f879746271804767cb45551ec5592cdab00ee105c06dddde1a98f73b185" + sha256: "44cf3aabcedde30f2dba119a9dea3b0f2672fbe6fa96e85536251d678216b3c4" url: "https://pub.dev" source: hosted - version: "3.1.2" + version: "3.1.3" uuid: dependency: transitive description: @@ -1668,10 +1690,10 @@ packages: dependency: transitive description: name: web - sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 + sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.1.0" web_socket: dependency: transitive description: @@ -1716,10 +1738,10 @@ packages: dependency: "direct main" description: name: webview_flutter_android - sha256: "86c2d01c37c4578ee46560109cf2e18fb271f0d080a796f09188d0952352e057" + sha256: "285cedfd9441267f6cca8843458620b5fda1af75b04f5818d0441acda5d7df19" url: "https://pub.dev" source: hosted - version: "4.0.2" + version: "4.1.0" webview_flutter_platform_interface: dependency: transitive description: @@ -1732,18 +1754,18 @@ packages: dependency: "direct main" description: name: webview_flutter_wkwebview - sha256: "3be297aa4ca78205abdd284cf55f168c35246c75b3079990ad8ba9d257681a30" + sha256: b7e92f129482460951d96ef9a46b49db34bd2e1621685de26e9eaafd9674e7eb url: "https://pub.dev" source: hosted - version: "3.16.2" + version: "3.16.3" win32: dependency: "direct main" description: name: win32 - sha256: "68d1e89a91ed61ad9c370f9f8b6effed9ae5e0ede22a270bdfa6daf79fc2290a" + sha256: "84ba388638ed7a8cb3445a320c8273136ab2631cd5f2c57888335504ddab1bc2" url: "https://pub.dev" source: hosted - version: "5.5.4" + version: "5.8.0" win32_registry: dependency: transitive description: @@ -1756,10 +1778,10 @@ packages: dependency: "direct main" description: name: window_manager - sha256: ab8b2a7f97543d3db2b506c9d875e637149d48ee0c6a5cb5f5fd6e0dac463792 + sha256: "732896e1416297c63c9e3fb95aea72d0355f61390263982a47fd519169dc5059" url: "https://pub.dev" source: hosted - version: "0.4.2" + version: "0.4.3" windows_single_instance: dependency: "direct main" description: @@ -1772,10 +1794,10 @@ packages: dependency: transitive description: name: xdg_directories - sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d + sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.1.0" xml: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index e045a7244..3b3a3ea17 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -54,13 +54,7 @@ dependencies: sdk: flutter flutter_loggy: ^2.0.1 flutter_password_strength: ^0.1.6 - #flutter_secure_storage: ^9.0.0 - # https://github.com/mogol/flutter_secure_storage/issues/618 - flutter_secure_storage: - git: - url: https://github.com/inetic/flutter_secure_storage - ref: local-platform-dependencies - path: flutter_secure_storage + flutter_secure_storage: ^9.2.2 intl: ^0.19.0 intro_slider: ^4.2.0 introduction_screen: ^3.1.14 @@ -91,7 +85,7 @@ dependencies: qr_flutter: ^4.0.0 receive_sharing_intent: ^1.8.0 result_type: ^1.0.0 - sentry_flutter: ^8.8.0 + sentry_flutter: ^8.10.1 settings_ui: ^2.0.2 share_plus: ^10.0.2 shared_preferences: ^2.3.2 diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index c3a917603..8fd620927 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -12,7 +12,8 @@ #include #include #include -#include +#include +#include #include #include #include @@ -32,8 +33,10 @@ void RegisterPlugins(flutter::PluginRegistry* registry) { registry->GetRegistrarForPlugin("OuisyncPlugin")); PermissionHandlerWindowsPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("PermissionHandlerWindowsPlugin")); - ScreenRetrieverPluginRegisterWithRegistrar( - registry->GetRegistrarForPlugin("ScreenRetrieverPlugin")); + ScreenRetrieverWindowsPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("ScreenRetrieverWindowsPluginCApi")); + SentryFlutterPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("SentryFlutterPlugin")); SharePlusWindowsPluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("SharePlusWindowsPluginCApi")); SystemTrayPluginRegisterWithRegistrar( diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index 0efedc601..d35bab09f 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -9,7 +9,8 @@ list(APPEND FLUTTER_PLUGIN_LIST local_auth_windows ouisync permission_handler_windows - screen_retriever + screen_retriever_windows + sentry_flutter share_plus system_tray url_launcher_windows @@ -18,7 +19,6 @@ list(APPEND FLUTTER_PLUGIN_LIST ) list(APPEND FLUTTER_FFI_PLUGIN_LIST - sentry_flutter ) set(PLUGIN_BUNDLED_LIBRARIES)