mirror of
https://github.com/nextcloud/desktop.git
synced 2024-12-19 04:11:50 +03:00
aaa6dad3a5
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
62 lines
1.6 KiB
Markdown
62 lines
1.6 KiB
Markdown
# 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. Build the desktop client:
|
|
```
|
|
cd admin/osx/mac-crafter
|
|
swift run mac-crafter
|
|
```
|
|
|
|
3.1 Sign the application bundle by adding the following parameter:
|
|
`-c <Development or developer codesigning certificate name>`
|
|
The whole command will look like this:
|
|
```
|
|
swift run mac-crafter -c "Apple Development: <certificate common name>"
|
|
```
|
|
|
|
The resulting app bundle will be placed under the `product` folder in the mac-crafter folder.
|
|
|
|
> [!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 Manually 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 a Python script called `make_universal.py` which bundles together the arm64 and Intel builds into one universal app bundle. This script can be found under `admin/osx`. You can invoke it like so:
|
|
|
|
```
|
|
python admin/osx/make_universal.py <x86 build path> <arm64 build path> <final target path>
|
|
```
|