TestFlight — Eric's Drop to Phone (iOS)

For the paid App Store walkthrough (Plan B), use APP_STORE.md. This page is only CI / Match / the one-time listing fields.

CI uploads to TestFlight with Fastlane Match and an App Store Connect API key.

Apple Developer bundle ID com.droptophone.app is registered (VHJS6KRH8K, team 528M2RYVHB). The App Store Match profile exists. Uploads stay off until TESTFLIGHT_ENABLED is true and the App Store Connect listing exists.

Apple's API cannot create the App Store Connect listing (POST /v1/apps is forbidden). Create that once in the website, then CI can upload.

One-time App Store Connect listing

  1. Open App Store Connect → My Apps+New App.
  2. Platforms: iOS
  3. Name: Eric's Drop to Phone (or a unique variant if taken)
  4. Primary language: English (US)
  5. Bundle ID: com.droptophone.app
  6. SKU: droptophone-ios-1
  7. Privacy policy URL: https://droptophone.welchsoftware.net/PRIVACY_POLICY.html

GitHub Actions

Secret Purpose
ASC_KEY_ID App Store Connect API key id
ASC_ISSUER_ID App Store Connect issuer
ASC_PRIVATE_KEY .p8 contents
MATCH_PASSWORD Encrypts the Match certs git repo
MATCH_GIT_DEPLOY_KEY SSH deploy key for the certs repo
MATCH_GIT_BASIC_AUTH PAT fallback for the certs repo
GH_WORKFLOW_PAT Lets a manual devmain promote (Actions → Promote dev → main)
CLOUDFLARE_API_TOKEN Cloudflare API token so Publish Windows zip / Deploy site can wrangler deploy
CLOUDFLARE_ACCOUNT_ID Cloudflare account ID (same names as the company site)

Match git URL is in src/DropToPhone.iOS/fastlane/Matchfile.

Repo variable TESTFLIGHT_ENABLED: when true, pushes to main run .github/workflows/testflight.yml. Manual runs (Actions → Deploy to TestFlight) still work while it is false.

dev does not auto-merge to main. Promote when you want a production zip / TestFlight build.

First Match profile (once): Actions → Deploy to TestFlight → Run workflow → enable bootstrap_match.

Local Xcode (device)

cd ~/DropToPhone
git pull
open src/DropToPhone.iOS/DropToPhone.xcodeproj

Select your iPhone → Signing & Capabilities → Team → Run.