Download docs/APPLE_RELEASE.md from will-taggart/AFFECTOR: direct link, hf CLI and curl.
- Browser
- Download file 2.36 kB
-
https://huggingface.co/will-taggart/AFFECTOR/resolve/main/docs/APPLE_RELEASE.md
- Command line
-
hf download hf://will-taggart/AFFECTOR/docs/APPLE_RELEASE.md
-
curl -L -o APPLE_RELEASE.md https://huggingface.co/will-taggart/AFFECTOR/resolve/main/docs/APPLE_RELEASE.md
Signing and notarizing AFFECTOR
Apple Developer ID signing identifies the publisher; notarization submits the signed archive to Apple's automated service. Stapling attaches the accepted ticket for distribution. This is separate from App Store review and does not assess output quality.
Prerequisites
- Xcode command-line tools and an Apple Developer Program membership.
- A Developer ID Application certificate with its private key in Keychain.
- Notarization credentials stored in a Keychain profile. Never put passwords or private keys in the repository.
Check identities with security find-identity -v -p codesigning. The publisher identity for this release is Developer ID Application: William Taggart (HQSX3AJ8U7).
Workflow
- Build and test the application. Make all content changes before signing.
- Sign every nested Mach-O executable/library from the inside out with the Developer ID identity, secure timestamp, and hardened runtime. Then sign nested bundles and the outer app. AFFECTOR includes Python and native dependencies, so signing only the outer app is insufficient. Use the included
source/macos/sign_release.pyutility on a separate release copy. - Verify with
codesign --verify --deep --strict AFFECTOR.app. - Make the upload archive:
ditto -c -k --sequesterRsrc --keepParent AFFECTOR.app AFFECTOR.zip. - Submit:
xcrun notarytool submit AFFECTOR.zip --keychain-profile YOUR_PROFILE --output-format json. - Inspect status with
xcrun notarytool info SUBMISSION_ID --keychain-profile YOUR_PROFILE. Retrieve the log if rejected:xcrun notarytool log SUBMISSION_ID --keychain-profile YOUR_PROFILE notarization-log.json. - Only after status is Accepted:
xcrun stapler staple AFFECTOR.appandxcrun stapler validate AFFECTOR.app. - Check Gatekeeper:
spctl --assess --type execute --verbose=2 AFFECTOR.app. Re-create the ZIP from the stapled app, then compute SHA-256 checksums and distribute it.
Do not rebuild, edit, or re-sign a stapled app afterward; that creates a different artifact requiring a new release workflow. Keep an unchanged accepted archive and its submission record.
Official instructions: https://developer.apple.com/documentation/security/notarizing-macos-software-before-distribution and https://developer.apple.com/documentation/security/customizing-the-notarization-workflow .