ワンクリックで
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"