Skip to content
Agentmart
Submit a tool

publish-release

Build the signed release artifacts and ship them — Android AAB to a Play track and iOS archive to TestFlight/App Store, via Fastlane lanes or the tag-driven…

Skill by KotlinFoundation

IndexedMIT★ 28
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/kotlinfoundation-publish-release

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Build the signed release artifacts and ship them — Android AAB to a Play track and iOS archive to TestFlight/App Store, via Fastlane lanes or the tag-driven CI workflows, then submit for review. Use when the user wants to build a release, upload to Play/TestFlight, cut a release, or submit the app for review.

Use cases: devops

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 26, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/publish-release

What's inside

Skill name
publish-release
Description
Build the signed release artifacts and ship them — Android AAB to a Play track and iOS archive to TestFlight/App Store, via Fastlane lanes or the tag-driven CI workflows, then submit for review. Use when the user wants to build a release, upload to Play/TestFlight, cut a release, or submit the app for review.
License
MIT
Instructions
92 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Build and publish a release

Produce the signed release artifacts and upload them. Prereqs (do these first): release
signing wired (`setup-signing`), store apps created (`setup-google-play`,
`setup-appstore-connect`), version bumped (`bump-version`), release notes updated in
`distribution/whatsnew/whatsnew-en-US`.

All commands run from `MobileApp/`. Fastlane is the pre-wired path
(`MobileApp/fastlane/Fastfile`); the tag-driven GitHub workflows do the same in CI.

## Android

### Build the signed AAB

```bash
./gradlew :androidApp:bundleRelease
# → androidApp/build/outputs/bundle/release/androidApp-release.aab
```

Signed automatically when `distribution/android/keystore/keystore.properties` exists
(see `setup-signing`).

### First upload (manual — required by Google)

The **very first** upload to a new Play app must go through the console. Use the Fastlane
helper to build + stage the AAB, then upload it by hand:

```bash
fastlane android first_time_build
# copies the AAB to distribution/android/app-release.aab for manual upload
```

Upload it in Play Console → **Internal testing → Create new release** (see
`setup-google-play`).

### Subsequent releases (automated)

```bash
fastlane android playstore_release                    # internal track (default)
fastlane android playstore_release track:production    # promote to production
# useful options: upload_metadata:true upload_screenshots:true submit_for_review:true
```

Uses the Fastlane `supply` action + the Play service-account JSON
(`~/credentials/google-service-app-publisher.json`, or `service_account:` option).

## iOS

### Easiest — Xcode

Open the workspace → **Product → Archive** → in Organizer, **Distribute App** → App Store
Connect → upload to TestFlight / App Store.

### Fastlane

```bash
fastlane ios appstore_release                       # build + upload IPA to App Store Connect
fastlane ios appstore_release submit_for_review:true # auto-submit for review
# also: upload_metadata:true upload_screenshots:true
```

It archives the `iosApp` scheme (Release), exports to `distribution/ios/iosApp.ipa`, and
uploads via the ASC API key (Fastlane `pilot`/`deliver` under the hood). If Xcode warns
about SwiftPM linkage, follow the linkage-package steps in
`Documentation/docs/production/iOS.md` (and `AGENTS.md` → iOS SwiftPM) before archiving.

## CI path (tag-driven)

The GitHub workflows do the above in CI when you push a version tag (after the CI secrets
from `setup-signing` are set):

- push a `*-android` tag → `.github/workflows/publish_android_playstore.yml` → Play internal
  track
- push a `*-ios` tag → `.github/workflows/publish_ios_appstore.yml` → App Store Connect

Only push tags when the user asks to release.

## Submit for review

- **Android:** in Play Console, promote the internal-track build to a review-eligible track
  (closed/open testing or production) → **Send for review**. Or Fastlane
  `playstore_release track:production submit_for_review:true`.
- **iOS:** in App Store Connect, attach the uploaded build to the 1.0.0 version → **Add for
  Review → Submit**. Or `appstore_release submit_for_review:true`.

## Validate

The signed release build **uploads and appears in the console**: on the Play **internal
track** (Play Console → Internal testing) and in **TestFlight** (App Store Connect →
TestFlight). Once verified there, submit for review.

From KotlinFoundation/kmp-contest-starter-kit, MIT.

More from KotlinFoundation/kmp-contest-starter-kit

Signals

Stars
28
Forks
13
Open issues
1
Last commit (this folder)
Aug 10, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from KotlinFoundation

Cite this page

publish-release skill. Agent Mart. https://agentmart.dev/skills/kotlinfoundation-publish-release (last updated 2026-10-24)