Skip to content

feat: archive_and_upload.py — TestFlight pipeline #65

Description

@conorluddy

Problem

"Cut a TestFlight build" is a 5-step ritual: archive → export → upload → wait → check processing status. High value to automate, but high risk because of credential handling.

Sketch

python scripts/archive_and_upload.py \
  --project MyApp.xcodeproj \
  --scheme MyApp \
  --export-options ExportOptions.plist \
  --api-key-path ./AuthKey.p8 \
  --upload

Wraps xcodebuild archivexcodebuild -exportArchivexcrun notarytool / App Store Connect API upload.

Reuses

  • xcode/builder.py for subprocess + timeout patterns
  • common/env_config.env_int for upload/archive timeouts

Open questions

  • Credential story: keychain vs env vars vs file path. App Store Connect API keys (.p8) are the modern path.
  • altool is being phased out — prefer notarytool and App Store Connect API directly.
  • Out of scope: provisioning profile fetching, certificate management.

Definition of done

  • Archive + export + upload pipeline works end-to-end on a test app
  • Credentials documented + safe default (no echo)
  • --dry-run flag for CI sanity checks
  • SKILL.md updated

Part of the v2.0 coverage expansion epic.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Polish and low-urgency itemsblast:2Single domain — 2-5 files within one feature folderclarity:2Problem defined, solution unclear — needs a design spikeenhancementNew feature or requestrisk:4Cross-domain impact, state management, concurrency concernssize:MModerate scope, some design neededtype:featureNew functionality or capability

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions