Some checks failed
Build / Build openSUSE (leap:15.6) (push) Has been cancelled
Build / Build openSUSE (leap:16.0) (push) Has been cancelled
Build / Build openSUSE (tumbleweed) (push) Has been cancelled
Build / Build Fedora (42) (push) Has been cancelled
Build / Build Fedora (43) (push) Has been cancelled
Build / Build Fedora (44) (push) Has been cancelled
Build / Build OpenMandriva (cooker) (push) Has been cancelled
Build / Build Mageia (9) (push) Has been cancelled
Build / Build Debian (bookworm) (push) Has been cancelled
Build / Build Debian (forky) (push) Has been cancelled
Build / Build Debian (trixie) (push) Has been cancelled
Build / Build Ubuntu (noble) (push) Has been cancelled
Build / Build Ubuntu (questing) (push) Has been cancelled
Build / Build Ubuntu (resolute) (push) Has been cancelled
Build / Upload Ubuntu PPA (noble) (push) Has been cancelled
Build / Upload Ubuntu PPA (questing) (push) Has been cancelled
Build / Upload Ubuntu PPA (resolute) (push) Has been cancelled
Build / Build FreeBSD (push) Has been cancelled
Build / Build OpenBSD (push) Has been cancelled
Build / Build macOS Public (release, macos-15) (push) Has been cancelled
Build / Build macOS Public (release, macos-15-intel) (push) Has been cancelled
Build / Build macOS Private (release, macos-arm64) (push) Has been cancelled
Build / Build Windows MinGW (i686, debug) (push) Has been cancelled
Build / Build Windows MinGW (i686, release) (push) Has been cancelled
Build / Build Windows MinGW (x86_64, debug) (push) Has been cancelled
Build / Build Windows MinGW (x86_64, release) (push) Has been cancelled
Build / Build Windows MSVC (arm64, debug, arm64 debug, windows-11-arm) (push) Has been cancelled
Build / Build Windows MSVC (arm64, release, arm64 release, windows-11-arm) (push) Has been cancelled
Build / Build Windows MSVC (x86, debug, x86 debug, windows-2022) (push) Has been cancelled
Build / Build Windows MSVC (x86, release, x86 release, windows-2022) (push) Has been cancelled
Build / Build Windows MSVC (x86_64, debug, x86_64 debug, windows-2022) (push) Has been cancelled
Build / Build Windows MSVC (x86_64, release, x86_64 release, windows-2022) (push) Has been cancelled
Build / Upload (push) Has been cancelled
Build / Attach to release (push) Has been cancelled
This commit introduces a new section in the README.md detailing the process for building and signing a macOS package for the Mac App Store. It includes requirements for Apple Developer accounts, a manual setup guide for certificates and provisioning profiles, and a command to build the signed upload package. Additionally, it provides instructions for uploading the package to App Store Connect for review.
125 lines
4.0 KiB
Markdown
125 lines
4.0 KiB
Markdown
# Build helper scripts
|
||
|
||
This `build_tools/` directory contains **helper scripts and notes** for building Strawberry.
|
||
|
||
- It is **not** intended to be your CMake build output directory.
|
||
- Recommended CMake build output directories: `cmake-build/`, `build-release/`, etc.
|
||
|
||
## macOS
|
||
|
||
- Install dependencies via Homebrew:
|
||
|
||
```bash
|
||
./build_tools/macos/install_brew_deps.sh
|
||
```
|
||
|
||
- Build Strawberry:
|
||
|
||
```bash
|
||
./build_tools/macos/build_app.sh --release
|
||
open ./cmake-build-macos-release/strawberry.app
|
||
```
|
||
|
||
## macOS signing + notarization (Developer ID distribution)
|
||
|
||
This repo includes `build_tools/macos/build_sign_notarize.sh` to automate:
|
||
|
||
- build → (optional deploy) → codesign → notarize → staple → verify
|
||
|
||
### One-time setup (Apple Developer)
|
||
|
||
- **Install certificates**:
|
||
- In the Apple Developer portal, create (or download) a **Developer ID Application** certificate.
|
||
- Install it into your login keychain (Xcode can manage this via **Xcode → Settings → Accounts**).
|
||
|
||
- **Provisioning profiles**:
|
||
- For **Developer ID distribution (outside the Mac App Store)**, you typically **do not need a provisioning profile**.
|
||
- You *do* need profiles if you are building a **Mac App Store**-signed app (not what this repo’s scripts target).
|
||
|
||
- **Notarization credentials**:
|
||
- Create a `notarytool` keychain profile (recommended) so you don’t have to pass secrets on the command line:
|
||
|
||
```bash
|
||
# NOTE: <profile-name> is a positional argument (not a flag).
|
||
# Pick any name you want, e.g. "strawberry-notary".
|
||
xcrun notarytool store-credentials "<profile-name>" \
|
||
--apple-id "<your-apple-id>" \
|
||
--team-id "<TEAMID>" \
|
||
--password "<app-specific-password>"
|
||
```
|
||
|
||
### Listing what’s installed locally
|
||
|
||
Run with no args to list local signing identities + notarytool profiles:
|
||
|
||
```bash
|
||
./build_tools/macos/build_sign_notarize.sh
|
||
```
|
||
|
||
### Build + sign + notarize
|
||
|
||
```bash
|
||
./build_tools/macos/build_sign_notarize.sh --run --release --clean --deploy \
|
||
--identity "Developer ID Application: Your Name (TEAMID)" \
|
||
--notary-profile "<profile-name>"
|
||
```
|
||
|
||
### Build + sign + notarize + DMG (recommended for public distribution)
|
||
|
||
This produces:
|
||
|
||
- a notarized `strawberry.app` (stapled)
|
||
- a notarized `strawberry-notarize.zip` (useful for Sparkle / downloads)
|
||
- a notarized `strawberry-*.dmg` (stapled)
|
||
|
||
```bash
|
||
./build_tools/macos/build_sign_notarize.sh --run --release --clean --deploy --dmg \
|
||
--identity "Developer ID Application: Your Name (TEAMID)" \
|
||
--notary-profile "<profile-name>"
|
||
```
|
||
|
||
## macOS Mac App Store (MAS) build + signed PKG
|
||
|
||
This repo includes `build_tools/macos/build_mas_pkg.sh` to automate:
|
||
|
||
- build (MAS mode) → deploy (bundle deps) → embed provisioning profile → codesign → `productbuild` a signed `.pkg`
|
||
|
||
### Requirements (Apple Developer)
|
||
|
||
- An App Store Connect app record with bundle id **`com.dryark.strawberry`** (or your own).
|
||
- A **Mac App Store provisioning profile** for that App ID.
|
||
- Signing identities installed in your Keychain:
|
||
- **Apple Distribution** (for the `.app`)
|
||
- **3rd Party Mac Developer Installer** (for the `.pkg`)
|
||
|
||
Tip: list what you have installed:
|
||
|
||
```bash
|
||
security find-identity -p codesigning -v
|
||
security find-identity -p basic -v
|
||
ls -la "$HOME/Library/MobileDevice/Provisioning Profiles" | head -n 50
|
||
```
|
||
|
||
### Manual setup guide (certificates, Keychain Access, profiles)
|
||
|
||
See: `build_tools/macos/README_MAS.md`
|
||
|
||
### Build the signed upload PKG
|
||
|
||
```bash
|
||
./build_tools/macos/build_mas_pkg.sh --run --release --clean \
|
||
--codesign-identity "Apple Distribution: Your Name (TEAMID)" \
|
||
--installer-identity "3rd Party Mac Developer Installer: Your Name (TEAMID)" \
|
||
--provisionprofile "$HOME/Library/MobileDevice/Provisioning Profiles/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.provisionprofile"
|
||
```
|
||
|
||
Output:
|
||
|
||
- `cmake-build-macos-release-mas/strawberry.app`
|
||
- `cmake-build-macos-release-mas/strawberry-mas.pkg`
|
||
|
||
### Upload + submit for review
|
||
|
||
- Upload the `.pkg` using Apple’s **Transporter** app (App Store Connect), or with `iTMSTransporter`.
|
||
- In App Store Connect, wait for processing, select the build, then **Submit for Review**.
|