بنقرة واحدة
release-macos
Archive, notarize, and release a macOS app — creates GitHub release, uploads zip, updates Homebrew cask.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Archive, notarize, and release a macOS app — creates GitHub release, uploads zip, updates Homebrew cask.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Build, launch, and debug iOS simulator apps: run the target command, capture logs, capture screenshots, dump accessibility state, and summarize UI or runtime regressions.
Build, launch, and debug macOS apps: run the target command, capture logs, capture screenshots, and summarize UI or runtime regressions.
Archive, export, upload, and distribute an iOS app to TestFlight via App Store Connect using asc.
| name | release-macos |
| description | Archive, notarize, and release a macOS app — creates GitHub release, uploads zip, updates Homebrew cask. |
| user-invocable | true |
| disable-model-invocation | true |
| argument-hint | <version> |
Run the full macOS app release pipeline for the current project. This skill handles archive, export, notarization, GitHub release, and Homebrew cask update.
The project must have:
.xcodeproj) with a scheme matching the app nameconfig/exportOptions.plist for Developer ID signingnotarytool (xcrun notarytool store-credentials)gh CLI authenticated for GitHub releases../tap/Casks/<app-name>.rb (for cask update)Given the version argument $VERSION:
Detect project settings — find the .xcodeproj, scheme name, and app name from the working directory. Look at the justfile, project.yml, or xcodeproj for these values.
Archive the app:
xcodebuild \
-project $PROJECT \
-scheme $SCHEME \
-configuration Release \
-archivePath build/archive/$APP_NAME-$VERSION.xcarchive \
archive 2>&1 | xcbeautify
xcodebuild -exportArchive \
-archivePath build/archive/$APP_NAME-$VERSION.xcarchive \
-exportPath build/export/$APP_NAME-$VERSION \
-exportOptionsPlist config/exportOptions.plist 2>&1 | xcbeautify
temp_zip=$(mktemp -d)/$APP_NAME.zip
ditto -c -k --sequesterRsrc --keepParent "build/export/$APP_NAME-$VERSION/$APP_NAME.app" "$temp_zip"
xcrun notarytool submit "$temp_zip" --keychain-profile "notarytool" --wait
xcrun stapler staple "build/export/$APP_NAME-$VERSION/$APP_NAME.app"
rm -f "$temp_zip"
mkdir -p build/dist
ditto -c -k --sequesterRsrc --keepParent "build/export/$APP_NAME-$VERSION/$APP_NAME.app" "build/dist/$APP_NAME-$VERSION.zip"
gh release create $VERSION --draft --title "$VERSION" --notes "Release $VERSION"
Skip if release already exists.
gh release upload $VERSION "build/dist/$APP_NAME-$VERSION.zip" --clobber
../tap/Casks/ exists):sha256=$(shasum -a 256 "build/dist/$APP_NAME-$VERSION.zip" | cut -d' ' -f1)
cask_file=$(find ../tap/Casks -name "*.rb" | head -1)
sed -i '' -e "s/version \"[^\"]*\"/version \"$VERSION\"/" -e "s/sha256 \"[^\"]*\"/sha256 \"$sha256\"/" "$cask_file"