Some checks are pending
Build / Build openSUSE (leap:15.6) (push) Waiting to run
Build / Build openSUSE (leap:16.0) (push) Waiting to run
Build / Build openSUSE (tumbleweed) (push) Waiting to run
Build / Build Fedora (42) (push) Waiting to run
Build / Build Fedora (43) (push) Waiting to run
Build / Build Fedora (44) (push) Waiting to run
Build / Build OpenMandriva (cooker) (push) Waiting to run
Build / Build Mageia (9) (push) Waiting to run
Build / Build Debian (bookworm) (push) Waiting to run
Build / Build Debian (forky) (push) Waiting to run
Build / Build Debian (trixie) (push) Waiting to run
Build / Build Ubuntu (noble) (push) Waiting to run
Build / Build Ubuntu (questing) (push) Waiting to run
Build / Build Ubuntu (resolute) (push) Waiting to run
Build / Upload Ubuntu PPA (noble) (push) Waiting to run
Build / Upload Ubuntu PPA (questing) (push) Waiting to run
Build / Upload Ubuntu PPA (resolute) (push) Waiting to run
Build / Build FreeBSD (push) Waiting to run
Build / Build OpenBSD (push) Waiting to run
Build / Build macOS Public (release, macos-15) (push) Waiting to run
Build / Build macOS Public (release, macos-15-intel) (push) Waiting to run
Build / Build macOS Private (release, macos-arm64) (push) Waiting to run
Build / Build Windows MinGW (i686, debug) (push) Waiting to run
Build / Build Windows MinGW (i686, release) (push) Waiting to run
Build / Build Windows MinGW (x86_64, debug) (push) Waiting to run
Build / Build Windows MinGW (x86_64, release) (push) Waiting to run
Build / Build Windows MSVC (arm64, debug, arm64 debug, windows-11-arm) (push) Waiting to run
Build / Build Windows MSVC (arm64, release, arm64 release, windows-11-arm) (push) Waiting to run
Build / Build Windows MSVC (x86, debug, x86 debug, windows-2022) (push) Waiting to run
Build / Build Windows MSVC (x86, release, x86 release, windows-2022) (push) Waiting to run
Build / Build Windows MSVC (x86_64, debug, x86_64 debug, windows-2022) (push) Waiting to run
Build / Build Windows MSVC (x86_64, release, x86_64 release, windows-2022) (push) Waiting to run
Build / Upload (push) Blocked by required conditions
Build / Attach to release (push) Blocked by required conditions
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.
4.0 KiB
4.0 KiB
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:
./build_tools/macos/install_brew_deps.sh
- Build Strawberry:
./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
notarytoolkeychain profile (recommended) so you don’t have to pass secrets on the command line:
- Create a
# 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:
./build_tools/macos/build_sign_notarize.sh
Build + sign + notarize
./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)
./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 →
productbuilda 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)
- Apple Distribution (for the
Tip: list what you have installed:
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
./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.appcmake-build-macos-release-mas/strawberry-mas.pkg
Upload + submit for review
- Upload the
.pkgusing Apple’s Transporter app (App Store Connect), or withiTMSTransporter. - In App Store Connect, wait for processing, select the build, then Submit for Review.