Repository navigation
spotify-cli v0.1.5
Signing (macOS):
- Release binaries are signed with the project's Developer ID (team
LTBSK59BJ2) under the
hardened runtime, with a secure timestamp, and notarized by Apple. macOS keeps the Automation
answer ("spotify-daemon" may control "Spotify") by that signature, so updates no longer ask
again; the first signed release asks once more after the ad-hoc signed 0.1.4. Gatekeeper
accepts a binary downloaded with a browser (bare executables cannot be stapled, so it looks the
ticket up online on first launch). The codesign identifiers stay
com.unlikefraction.spotifyandcom.unlikefraction.spotify-daemon. spotify-daemonembeds an Info.plist (__TEXT,__info_plist: bundle identifier
com.unlikefraction.spotify-daemon, name, version, andNSAppleEventsUsageDescription, the
reason macOS shows in the permission prompt), and signed releases give it the
com.apple.security.automation.apple-eventsentitlement the hardened runtime requires for its
Apple Events. Thespotifycommand sends no Apple Events, so it gets neither. Linux and
Windows builds are unchanged.scripts/package-release.shsigns each macOS architecture through the new
scripts/macos-sign.shbefore packing:SPOTIFY_CODESIGN_IDENTITYfor Developer ID (unset:
ad-hoc, as before, for CI and contributors) andSPOTIFY_NOTARY_PROFILE(a
notarytool store-credentialskeychain profile) for notarization. It verifies every signature
(identifier, runtime flag, timestamp, team, the daemon's Info.plist and exact entitlements),
requires notarization statusAcceptedwith a ticket that lists both binaries' cdhashes
(printing the notary log otherwise), checks the identity (exactly one match, and a Developer
ID Application one when notarizing) and the profile before the build starts, and refuses a
notary profile without an identity.