- Signing individual frameworks, libraries and bundles as a whole is much faster than signing every contained file individually.
- Updated minimum macOS deployment target of mac-crafter to macOS 12. Because we are using Qt 6.9, we already have that as a requirement for our client anyway. So the raise is safe.
- The Sparkle framework is now downloaded directly with first-party network API instead of shelling out to wget which is unnecessary.
- Concurrent signing: This parallelizes the signing of dynamic libraries and frameworks on the same file system level to leverage available resources and reduce the signing time.
- Rebased branch onto i2h3/proper-macos-sandboxing
- Removed extension entitlement source files and related build settings from the Xcode project to be build with CMake instead.
- Set up CMake to generate the required entitlement manifests by itself to be used later on by Mac Crafter in the code signing.
- Updated the mac-crafter build subcommand to rely on URLs instead of path strings.
- Updated the mac-crafter build subcommand to reference the entitlement manifests generated by CMake.
- Updated the mac-crafter codesign subcommand to require arguments for specifying the entitlement manifests to sign the app extensions.
- Updated README of mac-crafter and removed a lot of outdated and redundant information.
Signed-off-by: Iva Horn <iva.horn@nextcloud.com>
- Replaced "group." with DEVELOPMENT_TEAM.
- Removed every occurrence of SOCKETAPI_TEAM_IDENTIFIER_PREFIX.
- Removed NCFPKAppGroupIdentifier from MacOSXBundleInfo.plist.in.
Signed-off-by: Iva Horn <iva.horn@nextcloud.com>
- Added debug logging to file provider extension about its sync actions.
- Added debug logging to file provider extension about its sync state reported to the main app through the socket.
- Added debug logging to the main app about the sync state received from a file provider extension through the socket.
- Updated sync action management to not consider the exclusion of a lock file as an error.
Signed-off-by: Iva Horn <iva.horn@nextcloud.com>
As per [the docs for `NSFileProviderReplicatedExtension
item(for:request:completionHandler:)`][1], the system will automatically
retry calling the method if the error is not one of `.notAuthenticated`,
`.serverUnreachable`, or `.noSuchItem`.
From my observations it seems that if the error `.cannotSynchronize` is
returned for the root container (i.e.
`NSFileProviderRootContainerItemIdentifier`), the system/file provider
framework just ends up deleting the newly created sync directory inside
`~/Library/CloudStorage`. This broke the entry in the Finder sidebar.
After changing the error to `.notAuthenticated` (which is semantically
wrong, but alas), I now could disable/enable the File Provider as often
as I wanted without the Finder sidebar entry to ever break due to the
directory having been removed previously ... Strange, this.
[1]: https://developer.apple.com/documentation/fileprovider/nsfileproviderreplicatedextension/item(for:request:completionhandler:)#Discussion
Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
- Removed explicit reference to NextcloudKit dependency which implicitly is pulled in already by NextcloudFileProviderKit.
- Consolidated some source code files into their respective view controllers in the file provider UI extension.
Signed-off-by: Iva Horn <iva.horn@icloud.com>
Trying to delete items from the trash with the "Allow deletion of items
in Trash" setting unticked would previously result in the sync state
being stuck in the "Syncing" state.
Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>