- Write to standard output in terminal environment.
- Write to unified logging system.
- Write to log file.
- All simultaneously.
- Standard output and errors from child processes launched are captured, too.
Signed-off-by: Iva Horn <iva.horn@nextcloud.com>
- 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>
- 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>
Using `"*"` will result in a different GUID with each invocation of the
linker (`light.exe`), which can break automated installations when a
localised version of the installer was loaded.
Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
The appimagetool as previously provided from the AppImageKit repo was
deprecated and removed.
The new versions as provided by the appimagetool repository also ship
with an updated runtime which from my understanding improve
compatibility (e.g. libfuse is now statically linked, so systems don't
need to have it present) and seem to slightly reduce the binary size as
well.
Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
- mac-crafter is an executable application, not a library
- Ensures all developers use identical dependency versions
- Provides reproducible builds across different environments
- Prevents "works on my machine" dependency issues
- Critical for production deployment consistency
- Enables reliable CI/CD builds with same dependency versions
- Helps with debugging by ensuring same versions across dev/test/prod
- Standard practice for applications vs libraries which should remain flexible
Signed-off-by: Iva Horn <iva.horn@icloud.com>
Had to rename Utils/Codesign.swift to Utils/Codesigning.swift to avoid duplicate module name compiler error.
Signed-off-by: Iva Horn <iva.horn@icloud.com>
- Isolated global state into an actor.
- Updated declarations and calls to reflect asynchronicity.
- The replacement of the enumerator with subpathsOfDirectory(atPath:) was suggested by Copilot to necessarily avoid the use of synchronous enumeration in an asynchronous context.
- Updated README.
Signed-off-by: Iva Horn <iva.horn@icloud.com>