Skip to content

Build and Release

星冉 edited this page Aug 3, 2026 · 1 revision

Build and Release

中文

Xcode development

Open Screen-Remote.xcodeproj, select the Screen-Remote scheme, choose the My Mac destination, and run when execution is needed. The target is a macOS app with a macOS 11.0 deployment target. Do not build after every ordinary documentation or code edit; build when compilation, execution, or visual verification is warranted.

Make targets

From Screen-Remote-macOS/:

make build    # prepares the official scrcpy server asset, then builds
make run      # builds and launches outside Xcode
make dev      # watches Swift/project files and reloads after changes
make logs     # follows the Makefile-launched application log
make release  # archives universal arm64/x86_64 and creates dist/*.dmg

The build runs scripts/prepare-scrcpy-server.sh; an existing asset must match the pinned SHA-256, and a missing asset is downloaded from the official scrcpy v4.1 release and verified. The Xcode target also builds and bundles dadb-helper.jar from external/dadb.

Release requirements

make release archives a universal application, validates requested architectures, and produces a versioned DMG. Development signing defaults to Apple Development. Public distribution needs a Developer ID Application identity and, when configured, a notarization keychain profile:

make release \\
  RELEASE_SIGNING_IDENTITY="Developer ID Application: Example (TEAMID)" \\
  NOTARY_PROFILE="screen-remote-notary"

RELEASE_CODE_SIGNING_ALLOWED=NO creates an unsigned test package only; it is not a public-distribution artifact.

Clone this wiki locally