Files
strawberry/build_tools/README.md
David Helkowski a30b4c1ac2
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
Add macOS Mac App Store build instructions to README.md
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.
2026-01-22 20:07:00 +09:00

4.0 KiB
Raw Permalink Blame History

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 repos scripts target).
  • Notarization credentials:

    • Create a notarytool keychain profile (recommended) so you dont have to pass secrets on the command line:
# 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 whats 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>"

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 → 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:

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.app
  • cmake-build-macos-release-mas/strawberry-mas.pkg

Upload + submit for review

  • Upload the .pkg using Apples Transporter app (App Store Connect), or with iTMSTransporter.
  • In App Store Connect, wait for processing, select the build, then Submit for Review.