Skip to content
Agentmart
Submit a tool

asc-ad-hoc-distribution

Prepare, publish, resume, and verify private iOS release-testing installs with asc distribute.

Skill by rorkai

IndexedMIT★ 1,100
Write a review

Chalk Labs

Need help deploying asc-ad-hoc-distribution?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

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/rorkai-asc-ad-hoc-distribution

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

Prepare, publish, resume, and verify private iOS release-testing installs with asc distribute. Use when distributing an IPA to registered devices outside TestFlight, reconciling ad hoc profiles, publishing through caller-owned S3-compatible storage, or diagnosing a resumable private distribution run.

Use cases: testing, cloud, marketing

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. Checked Oct 25, 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/asc-ad-hoc-distribution

What's inside

Skill name
asc-ad-hoc-distribution
Description
Prepare, publish, resume, and verify private iOS release-testing installs with asc distribute. Use when distributing an IPA to registered devices outside TestFlight, reconciling ad hoc profiles, publishing through caller-owned S3-compatible storage, or diagnosing a resumable private distribution run.
License
MIT
Instructions
186 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# ASC ad hoc distribution

Use the experimental `asc distribute` workflow to turn an existing iOS archive
into a private, verified install link for registered devices. Use TestFlight or
the App Store release skills instead when the build should go through Apple-hosted
distribution.

Confirm the installed contract before acting:

```bash
asc distribute --help
asc distribute plan --help
asc distribute apply --help
asc distribute resume --help
asc distribute status --help
asc distribute verify --help
```

## Choose the workflow

- Use `plan` -> `apply` -> `resume`/`status` -> `verify` for an end-to-end,
  hash-authorized run starting from an `.xcarchive`.
- Use `inspect` -> `prepare` -> `publish` only when the caller already owns the
  ad hoc IPA and wants to operate the lower-level boundaries separately.

## Guardrails

- Treat the distribution spec, devices file, PKCS#12 identity, password file,
  run state, and exact install-link artifact as private. Keep them out of Git and
  require owner-only permissions.
- Never put S3 credentials or presigned URLs in the distribution spec, command
  output, logs, issues, or chat. Use `ASC_S3_ACCESS_KEY_ID`,
  `ASC_S3_SECRET_ACCESS_KEY`, and optional `ASC_S3_SESSION_TOKEN`, or the
  standard AWS SDK credential chain.
- `plan` is read-only and may exit successfully with `ready: false`. Inspect the
  typed blockers and effects before continuing.
- `apply` can register missing devices, create safe App IDs and successor ad hoc
  profiles, write local artifacts, and publish immutable objects. Run it only
  after the user authorizes the exact plan hash and effect inventory.
- The orchestrated workflow supports private access to an existing
  S3-compatible bucket. It does not create buckets, change policies, delete old
  builds, install the app, or launch it.
- Input drift, an immutable-object conflict, expired signing material, or an
  expired private link requires a new plan. Do not force the old run forward.

## Preconditions

- An existing iOS `.xcarchive` with one main app target. Embedded apps,
  extensions, Watch apps, and App Clips make the v1 plan not ready.
- A local iOS distribution PKCS#12 identity and optional protected password file.
- A protected strict-v1 devices file. For example:

```json
{"schemaVersion":1,"devices":[{"name":"Test iPhone","udid":"DEVICE_UDID","platform":"IOS"}]}
```

- App Store Connect authentication with access to devices, Bundle IDs,
  certificates, and profiles.
- An existing S3-compatible bucket and valid credentials.

## 1. Create the private distribution spec

Relative paths resolve from the spec directory. The spec does not interpolate
environment variables or accept credentials. A representative private config is:

```json
{
  "schemaVersion": 1,
  "devicesFile": "devices.json",
  "signing": {
    "identity": {
      "format": "pkcs12",
      "path": "../signing/distribution.p12",
      "passwordFile": "../secrets/distribution-p12-password"
    },
    "minimumValidityDays": 7,
    "maxMutations": 32
  },
  "publication": {
    "endpoint": "https://objects.example.com",
    "downloadEndpoint": "https://downloads.example.com",
    "region": "auto",
    "bucket": "ios-builds",
    "prefix": "team/app",
    "addressingStyle": "path",
    "urlTtl": "24h",
    "downloadGrace": "1h",
    "verifyTimeout": "30s"
  },
  "metadata": {
    "title": "App",
    "channel": "pull-request-42",
    "sourceRevision": "abc123",
    "sourceUrl": "https://example.com/team/app/commit/abc123"
  }
}
```

`passwordFile`, `certificateSha256`, `downloadEndpoint`, and every metadata field
are optional. An omitted password file means the PKCS#12 must use an empty
password. Protect the config and secret inputs before planning:

```bash
chmod 600 ".asc/distribution/config.json" ".asc/distribution/devices.json"
chmod 600 ".asc/signing/distribution.p12" ".asc/secrets/distribution-p12-password"
```

## 2. Plan without mutation

```bash
asc distribute plan \
  --archive-path ".asc/artifacts/App.xcarchive" \
  --config ".asc/distribution/config.json" \
  --plan ".asc/distribution/plan.json" \
  --state-dir ".asc/distribution/runs" \
  --output json
```

Inspect `ready`, `planHash`, signing validity, destination, and the complete

From rorkai/app-store-connect-cli-skills, MIT.

More from rorkai/app-store-connect-cli-skills

Signals

Stars
1,100
Forks
67
Open issues
0
Last commit (this folder)
Aug 15, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
Website
asccli.sh
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

Same skill elsewhere

Copies of this SKILL.md published by others; search shows only one of them.

More from rorkai

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get asc-ad-hoc-distribution running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying asc-ad-hoc-distribution?

CallGet help
Cite this page

asc-ad-hoc-distribution skill. Agent Mart. https://agentmart.dev/skills/rorkai-asc-ad-hoc-distribution (last updated 2026-10-24)