diff --git a/admin/osx/mac-crafter/README.md b/admin/osx/mac-crafter/README.md new file mode 100644 index 000000000..572d5e519 --- /dev/null +++ b/admin/osx/mac-crafter/README.md @@ -0,0 +1,79 @@ +# mac-crafter + +A tool to easily build a fully-functional Nextcloud Desktop Client for macOS. + +It will create the application bundle with the option to sign it, which is required by Apple when running and debugging the file provider module. + +## System requirements + +- Mac OS > 11 +- XCode +- Python + +## Step by step usage + +1. Clone the desktop client in your mac OS +``` +https://github.com/nextcloud/desktop.git +``` + +2. Create the build folder +``` +mkdir +``` + +3. Build the desktop client: +``` +swift run --build-path --package-path /admin/osx/mac-crafter mac-crafter +``` + +3.1 Sign the application bundle by adding the following parameter: +`-c "Apple Development: "` +The whole command will look like this: +``` +swift run --build-path --package-path /admin/osx/mac-crafter mac-crafter -c "Apple Development: " +``` + +> [!TIP] +> Check [Apple's oficial documentation about code signing](https://developer.apple.com/documentation/xcode/using-the-latest-code-signature-format). + +3.2 Build the file provider module with this option: +``` +--build-file-provider-module +``` + +3.3 Disable the auto-updater: +``` +--disable-autoupdater +``` + +3.4 Set the architecture you are building for: + +``` +--arch arm64 +``` + +The options are `x86_64` and `arm64`. + +### How to build the app bundle for arm and intel + +To achieve this we are using [KDE Craft](https://community.kde.org/Craft). + +1. After running the steps above, you will be able to use the `CraftMaster.py` script for that: + +``` +python build/craftmaster/CraftMaster.py --config /craftmaster.ini --target macos-clang-arm64 -c --add-blueprint-repository https://github.com/nextcloud/desktop-client-blueprints/ +``` + +The `--target` options are define in the [`craftmaster.ini` file](https://github.com/nextcloud/desktop/blob/c771c4166c806d686d9b4f8b11e33d8d95631398/craftmaster.ini). + +2. Install the client dependencies +``` +python build/craftmaster/CraftMaster.py --config /craftmaster.ini --target macos-clang-arm64 -c --install-deps nextcloud-client +``` + +3. Build the client + +``` +python build/craftmaster/CraftMaster.py --config /craftmaster.ini --target macos-clang-arm64 -c --src-dir nextcloud-client +```