This repo now includes code paths for an APPSTORE build variant and Mac App Store-specific files:
mac/TinyClips/Info-MAS.plistmac/TinyClips/TinyClipsMAS.entitlements
When APPSTORE is defined at compile time:
- Update UI is hidden in menu + settings.
- Save behavior is sandbox-safe:
- Default save folders:
- Screenshots + GIFs:
~/Pictures/TinyClips - Videos:
~/Movies/TinyClips
- Screenshots + GIFs:
- Optional custom save folder is selected via
NSOpenPaneland persisted using a security-scoped bookmark.
- Default save folders:
Direct/non-App-Store behavior is unchanged.
- Duplicate the
TinyClipstarget and name itTinyClipsMAS. - Set a distinct bundle identifier for
TinyClipsMAS.
- Current MAS bundle identifier in this repo:
com.refractored.tinyclips
- In
TinyClipsMASbuild settings:INFOPLIST_FILE = TinyClips/Info-MAS.plistCODE_SIGN_ENTITLEMENTS = TinyClips/TinyClipsMAS.entitlements- Add
APPSTOREto Swift Active Compilation Conditions. - Enable App Sandbox (
ENABLE_APP_SANDBOX = YES).
- Remove Sparkle from the
TinyClipsMAStarget:- No Sparkle product in the MAS target's Frameworks/Link phase.
- Keep Sparkle only in the direct distribution target.
- Set signing/provisioning for Mac App Store distribution on
TinyClipsMAS.
TinyClips(direct):- Still shows “Check for Updates…”.
- Save directory field remains editable path behavior.
TinyClipsMAS:- No update UI.
- Without custom folder, screenshots/GIFs save to Pictures and videos save to Movies.
- Custom folder selection persists across relaunch and new captures save there.
Use Xcode Cloud for the Mac App Store (TinyClipsMAS) CI/CD path.
- Ensure the cloud workflow builds the
TinyClipsMASscheme for App Store validation/distribution. - If automatic Swift package resolution is disabled, commit
mac/TinyClips.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolvedto the branch being built. - In App Store Connect, make sure the app record and signing assets align with the MAS bundle identifier
com.refractored.tinyclips.