agentleFS
OpenCovenOpenCoven/coven/skills/tauri-apple-release/SKILL.md

tauri-apple-release

Skill75 starsChanged 4 months agoMITView on GitHub

Standardize, debug, or execute Tauri iOS TestFlight and macOS Apple release pipelines, including App Store Connect upload auth, Apple Distribution signing, provisioning profiles, notarization, bundle/version metadata, and single-packet release credential asks.

  • Reads credentials

The file

Show its rules and text

We split this skill into the rules it gives an agent

14 rules. About 0 are common, 12 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈12

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use this skill for Tauri iOS/TestFlight or macOS Apple release work.

    line 8
  2. Distinctive:

    Treat Apple release work as one release packet, not a sequence of drip asks.

    line 12
  3. Distinctive:

    Never ask for only “the issuer ID” unless the packet is otherwise complete and that exact field failed.

    line 21
  4. Very specific:

    Do not print or paste private key, .p8, .p12, app-specific password, provisioning profile contents, or real secret values.

    line 25
  5. Distinctive:

    Prefer 1Password/GitHub Secrets/env vars for secrets.

    line 27
  6. Distinctive:

    Do not upload to TestFlight/App Store Connect until export validation passes with an App Store distribution provisioning profile.

    line 28
  7. Distinctive:

    Start by identifying which gate failed:

    line 32
  8. Very specific:

    Use exact Apple error numbers when present, e.g.

    line 38
  9. Distinctive:

    When blocked on credentials/signing, ask once:

    line 42
  10. Distinctive:

    If the provisioning profile is for the right Bundle ID but includes an old cert fingerprint, and the Mac has a different usable Apple …

    line 88
  11. Distinctive:

    Prefer regenerating/downloading the App Store provisioning profile selecting the current usable cert.

    line 90
  12. Distinctive:

    Avoid reviving old cert private keys unless regeneration is impossible.

    line 91
  13. Distinctive:

    If the repo has a release doctor, run it before asking the user:

    line 119
  14. Distinctive:

    If missing, add one or apply the single packet ask above manually.

    line 125

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Tauri Apple Release

Use this skill for Tauri iOS/TestFlight or macOS Apple release work.

Prime directive

Treat Apple release work as one release packet, not a sequence of drip asks.

A usable packet includes:

  1. Team/app metadata — Bundle ID, Team ID, version, build number, App Store Connect app record.
  2. Upload auth — App Store Connect API key or Apple ID app-specific password + provider public ID.
  3. Distribution signing — Apple Distribution cert/private key and App Store provisioning profile for iOS; Developer ID cert + notarization auth for macOS direct download.
  4. Artifact path — .ipa, .app, .dmg, etc.

Never ask for only “the issuer ID” unless the packet is otherwise complete and that exact field failed.

Safety rules

  • Do not print or paste private key, .p8, .p12, app-specific password, provisioning profile contents, or real secret values.
  • It is okay to discuss non-secret identifiers: Bundle ID, Team ID, certificate SHA-1 fingerprint, profile UUID/name, key ID, issuer ID/provider public ID.
  • Prefer 1Password/GitHub Secrets/env vars for secrets.
  • Do not upload to TestFlight/App Store Connect until export validation passes with an App Store distribution provisioning profile.

Standard triage

Start by identifying which gate failed:

  1. Build correctness — pnpm build, tauri build, tauri ios build fails before Apple export/upload.
  2. Apple trust/signing — archive/export fails, invalid provisioning profile, cert mismatch, wrong Bundle ID/Team ID.
  3. Release transport — upload auth, provider/issuer mismatch, TestFlight processing.

Use exact Apple error numbers when present, e.g. 90161 Invalid Provisioning Profile.

Single release packet ask

When blocked on credentials/signing, ask once:

Please provide/store ONE complete Apple release packet for <app>. Do not paste private key, certificate, provisioning profile, or app-specific password contents in chat.

App metadata:
- Bundle ID: <exact bundle id>
- Team ID: <Apple Developer Team ID>
- Version/build: <short version>/<build number>
- App Store Connect app record exists: yes/no

Upload auth — choose A or B:
A. Team App Store Connect API key:
   - APPLE_API_KEY_ID
   - APPLE_API_ISSUER
   - APPLE_API_KEY_PATH or APPLE_API_KEY_P8 in secrets
B. Apple ID fallback:
   - APPLE_ID
   - APPLE_APP_SPECIFIC_PASSWORD
   - APPLE_PROVIDER_PUBLIC_ID

Distribution signing — choose A, B, or C:
A. Xcode automatic signing account added on build Mac
B. Manual signing assets:
   - Apple Distribution .p12 + password
   - App Store provisioning profile for exact Bundle ID
C. Team ASC API key that xcodebuild can use for provisioning

iOS/TestFlight workflow

  1. Confirm metadata:
    • src-tauri/tauri.conf.json > identifier
    • Tauri version/build overrides if present
    • App Store Connect app record matches the exact Bundle ID
  2. Build/archive:
    • pnpm tauri ios build --export-method app-store-connect
  3. Verify profile type:
    • get-task-allow = false
    • no ProvisionedDevices
    • profile App ID matches TEAM_ID.BundleID
    • profile includes the certificate installed on the build Mac
  4. Upload only after export is valid.

Cert/profile mismatch rule

If the provisioning profile is for the right Bundle ID but includes an old cert fingerprint, and the Mac has a different usable Apple Distribution identity:

  • Prefer regenerating/downloading the App Store provisioning profile selecting the current usable cert.
  • Avoid reviving old cert private keys unless regeneration is impossible.

Example language:

This is a cert/profile mismatch, not a general TestFlight failure. Regenerate the App Store provisioning profile for <Bundle ID> selecting the currently installed Apple Distribution cert <fingerprint>, then rerun export/upload.

macOS direct-download workflow

  1. Build signed app/DMG with Developer ID Application identity.
  2. Notarize using App Store Connect credentials.
  3. Staple and validate:
    • codesign --verify --deep --strict path/to/App.app
    • spctl --assess --type execute --verbose path/to/App.app
    • xcrun stapler validate path/to/App.app
    • xcrun stapler validate path/to/App.dmg

Common Apple auth nuance

A .p8 key can work for notarization or upload with --api-key-subject user but still fail automatic provisioning/export if it is not a team App Store Connect API key. For automated iOS export, use one of:

  • Xcode account automatic signing,
  • manual distribution cert + App Store profile,
  • a team API key that xcodebuild can use for provisioning.

Repo doctor

If the repo has a release doctor, run it before asking the user:

pnpm run release:credentials:doctor

If missing, add one or apply the single packet ask above manually.

References

For deeper implementation details, read references/apple-release-packet.md.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.