iOS App Store Submission — Canonical Sources
Why this is in the vault
The /squarely-deploy skill encodes the WORKFLOW for iOS deployment. This note is the REFERENCE companion — when the skill needs deeper context (Apple guideline change, new TestFlight feature, fastlane integration, certificate edge case), this is the catalogue to consult. Per founder’s “get sources ingested + turn into skills” direction (2026-05-03).
Discipline note: the linked sources are copyrighted. This catalogue is intentionally a thin index — link + 1-sentence summary in our own words + scenario-mapping. Do not paste content from these pages back into the vault; fetch them at the point of need.
Apple official sources (canonical, evergreen)
| Title | URL | What it covers (our words) | When to consult |
|---|---|---|---|
| Distributing your app for beta testing and releases | https://developer.apple.com/documentation/xcode/distributing-your-app-for-beta-testing-and-releases | Apple’s top-level entry point linking the archive → upload → TestFlight → release chain. | First lookup whenever a step in the deploy workflow is unclear; canonical roadmap of what an Xcode-driven release path looks like. |
| App Review Guidelines | https://developer.apple.com/app-store/review/guidelines/ | Apple’s submission rulebook organised into Safety, Performance, Business, Design, Legal sections. | Before any submission of a new feature category (UGC, IAP, anonymous chat, external links). Re-read whenever Apple posts a guidelines update note. |
| App Store Connect API — overview | https://developer.apple.com/app-store-connect/api/ | Marketing-side overview of what the REST API can automate (TestFlight, builds, sales, in-app purchases). | When deciding whether a new automation should hit the ASC API directly or piggyback on Xcode/fastlane. |
| App Store Connect API — full reference | https://developer.apple.com/documentation/appstoreconnectapi | Endpoint-level reference for the ASC REST API. | When asc-api.sh needs a new endpoint, request shape, or resource type. |
| ASC API release notes | https://developer.apple.com/documentation/appstoreconnectapi/app-store-connect-api-release-notes | Version-by-version log of API additions and breaking changes. | Whenever an automation breaks or before deciding to depend on a new endpoint; check release notes for deprecations. |
| ASC API — Get started (App Store Connect Help) | https://developer.apple.com/help/app-store-connect/get-started/app-store-connect-api/ | Step-by-step for enabling API access and team-level permission setup. | First-time provisioning of an ASC API key for a new team or product. |
| Creating API Keys for App Store Connect API | https://developer.apple.com/documentation/appstoreconnectapi/creating-api-keys-for-app-store-connect-api | Mechanics of generating, scoping, and revoking ASC API keys (.p8 files, Key ID, Issuer ID). | When rotating, scoping, or troubleshooting an ASC API key. Cross-reference our 1Password storage pattern. |
| TestFlight overview (ASC Help) | https://developer.apple.com/help/app-store-connect/test-a-beta-version/testflight-overview | The end-to-end TestFlight flow — test info, builds, internal vs external groups, beta review. | Setting up a new TestFlight track or onboarding new tester groups for Squarely or future apps. |
| TestFlight (developer landing) | https://developer.apple.com/testflight/ | Product page describing tester limits (100 internal / 10,000 external) and platform support. | Quick capacity check or to confirm what platforms support TestFlight. |
| Invite external testers | https://developer.apple.com/help/app-store-connect/test-a-beta-version/invite-external-testers/ | Mechanics of public TestFlight links, group management, and external-tester beta review. | Before opening a public TestFlight beta or sharing a build with non-team testers. |
| Testing IAP / subscriptions in TestFlight | https://developer.apple.com/help/app-store-connect/test-a-beta-version/testing-subscriptions-and-in-app-purchases-in-testflight/ | What StoreKit behaviour looks like in TestFlight builds vs Sandbox vs Production. | Debugging “0 products returned” or subscription-state issues that only appear in TestFlight. |
| App build statuses (ASC Help reference) | https://developer.apple.com/help/app-store-connect/reference/app-uploads/app-build-statuses/ | Glossary of every status string ASC may report on an uploaded build. | When a build is stuck — look up the exact status before guessing. |
| Distribute (developer landing) | https://developer.apple.com/distribute/ | Apple’s catalog of all distribution paths (App Store, TestFlight, Enterprise, web distribution, unlisted). | Choosing which distribution model fits a new RDCO product (e.g., MAC info-product as App Store vs unlisted). |
| Set distribution methods (ASC Help) | https://developer.apple.com/help/app-store-connect/manage-your-apps-availability/set-distribution-methods/ | How to flip distribution method on an existing app in ASC. | Switching a Squarely-adjacent app between public, unlisted, or pre-order. |
| Distributing your app from your website | https://developer.apple.com/documentation/appdistribution/distributing-your-app-from-your-website | The EU/Alternative Distribution path Apple opened in 2024. | Only relevant if RDCO ships an EU-only build outside the App Store; out of scope for Squarely now. |
| Unlisted App Distribution | https://developer.apple.com/support/unlisted-app-distribution/ | Apply-by-form path to publish an app discoverable only via direct link. | If an internal-tool or limited-audience RDCO app should not appear in App Store search. |
| Upcoming Requirements | https://developer.apple.com/news/upcoming-requirements/ | Rolling list of SDK / OS / privacy deadlines Apple is enforcing. | Quarterly check, and before any cycle that may butt up against an SDK floor (e.g., iOS 26 SDK floor in April 2026). |
Paul Hudson / HackingWithSwift (Swift-native deep dives)
Hudson’s site is heavier on Swift/SwiftUI tutorials than on App Store mechanics — most of the App Store content lives on the forum side and in Hacking with Swift+ subscriber lessons. Use his content for Swift-language root-causing of submission failures, not as a primary distribution-process source.
| Title / area | URL | What it covers (our words) | When to consult |
|---|---|---|---|
| HackingWithSwift home | https://www.hackingwithswift.com/ | Top-level entry; search bar is the fastest path to specific topics. | When a Swift / SwiftUI / Xcode error needs a tutorial-grade explanation rather than docs-grade. |
| HackingWithSwift forums (search) | https://www.hackingwithswift.com/forums | Community Q&A — strong on TestFlight rejections, build-failure post-mortems, CloudKit-in-TestFlight oddities. | When a TestFlight or App Store error message returns no useful hits in Apple’s forums. Search by exact error string. |
| Hacking with Swift+ (subscriber) | https://www.hackingwithswift.com/plus | Paid track including the “Ultimate Portfolio App” project which walks through real submission incl. accessibility, IAP, and pre-launch readiness. | When upgrading our submission-readiness checklist; this is the most opinionated Swift-native take. Subscriber-gated. |
Hudson also publishes via twostraws GitHub and YouTube — use those when a topic doesn’t surface on the main site.
Antoine van der Lee / SwiftLee (App Store Connect deep dive)
AvdLee is the primary independent authority on the ASC API in Swift. His SDK is the de facto Swift wrapper.
| Title | URL | What it covers (our words) | When to consult |
|---|---|---|---|
| App Store Connect API SDK in Swift: Creating Developer Tools | https://www.avanderlee.com/swift/app-store-connect-api-adoption/ | Article walking through JWT auth (Issuer ID + Key ID + .p8) and using the AvdLee Swift SDK to call ASC endpoints. | When evaluating whether to build a Swift-native ASC tool versus the shell wrapper at ~/.claude/scripts/asc-api.sh. |
| AvdLee/appstoreconnect-swift-sdk (GitHub) | https://github.com/AvdLee/appstoreconnect-swift-sdk | Swift SDK generated from Apple’s OpenAPI spec; ~7yrs maintained, 38+ releases. | If/when we want a typed Swift API for an internal RDCO tool; also valuable as a reference for endpoint coverage. |
| AvdLee blog index | https://www.avanderlee.com/recents/ | Weekly Swift posts; periodically covers App Store Optimization and Xcode-side release tooling. | Periodic browsing for ASC-adjacent best practices; not a primary submission source. |
fastlane (the canonical iOS automation toolkit)
fastlane is the industry-standard wrapper around App Store Connect, TestFlight, code signing, and metadata sync. We are intentionally taking a direct-API path with asc-api.sh for the /squarely-deploy skill, but fastlane remains the reference implementation for what a complete release pipeline looks like.
| Title | URL | What it covers (our words) | When to consult |
|---|---|---|---|
| fastlane home | https://fastlane.tools/ | Project landing — “App automation done right.” Lists actions and platforms. | Quick orientation for newcomers to the toolkit. |
| fastlane docs | https://docs.fastlane.tools/ | Full action reference and getting-started guides for iOS and Android. | Lookup when our own automation needs a precedent for a given step. |
| iOS App Store deployment guide | https://docs.fastlane.tools/getting-started/ios/appstore-deployment/ | Reference recipe for screenshots → code signing → build → upload → submit lane. | When sketching the shape of our /squarely-deploy workflow; mine for step ordering and gotchas. |
| deliver / upload_to_app_store action | https://docs.fastlane.tools/actions/upload_to_app_store/ | Detailed parameter list for binary upload, metadata sync, screenshots, and review submission. | Cross-check parameter names and required fields; many ASC API calls have analogous fastlane semantics. |
| appstore action | https://docs.fastlane.tools/actions/appstore/ | Alias for upload_to_app_store with App Store-specific defaults. | Cross-reference when deliver docs feel ambiguous. |
When to use fastlane vs our direct-API skill: use /squarely-deploy (asc-api.sh) for the routine Squarely release loop because it has zero Ruby toolchain dependency and we control every step. Reach for fastlane only if (a) we need Match-style certificate management across multiple machines, (b) we add a second iOS app and the per-app boilerplate of asc-api.sh starts to hurt, or (c) Apple ships a feature fastlane covers and we don’t yet.
Anthropic Codex iOS plugin docs
The Codex iOS plugin / Hudson + AvdLee skills the founder installed on 2026-04-30 weren’t surfaced as a single canonical doc page in this catalogue pass — they live in ~/.agents/skills/ (currently empty on this machine, may be installed elsewhere) and the Anthropic plugin marketplace.
| Title | URL | What it covers (our words) | When to consult |
|---|---|---|---|
| Anthropic Plugins directory | https://claude.com/plugins | Anthropic’s official plugin marketplace; iOS-relevant skills (Hudson, AvdLee, Codex iOS) are discoverable here. | When checking whether a published skill already covers a problem before we hand-write one. |
| anthropics/claude-plugins-official (GitHub) | https://github.com/anthropics/claude-plugins-official | Source for the Anthropic-managed plugin directory; useful for reading skill SKILL.md files directly. | When we want to read a skill’s instructions to mine patterns for our own. |
Open question: confirm exact install paths of the Hudson + AvdLee + Codex iOS skills the founder installed 2026-04-30. They were not under ~/.agents/skills/ at the time of this catalogue (2026-05-03 02:00 ET).
Mapping against Ray Data Co
Direct application: the /squarely-deploy skill at ~/.claude/skills/squarely-deploy/SKILL.md references this note in its cross-references. When the skill’s Known gotchas section surfaces an unfamiliar error or edge case, this note is the lookup index for “where in Apple/Hudson/fastlane docs the answer lives.”
Cross-cutting capability per founder’s framing: this catalogue serves Squarely now, future iOS apps under RDCO, future Mac apps. Same reference set; updated when Apple ships major API or process changes.
The two highest-leverage links to keep mental cache of:
- App Review Guidelines — the rulebook. If an app gets rejected, start here, not Stack Overflow.
- ASC API release notes — the change log. If automation breaks, start here.
Open follow-ups
- If Apple ships an App Store Connect API revision (new endpoints, new resource types), refresh this catalogue.
- Watch for fastlane EOL signals (Ruby toolchain dependency) — if it dies, the direct-API approach our
/squarely-deployskill takes becomes the only sensible path. - Antoine van der Lee’s RocketSim app may have App Store deployment content worth referencing if discovered later.
- Confirm exact install location of the Hudson/AvdLee/Codex iOS skills installed 2026-04-30 and update the “Anthropic Codex iOS plugin docs” section with concrete file paths.
- Watch the Apple “Upcoming Requirements” page each quarter — the next visible inflection is the April 28, 2026 floor requiring iOS/iPadOS/tvOS/visionOS/watchOS 26 SDK builds for any new ASC upload. (That requirement applies retrospectively to this catalogue’s date.) Verify Squarely’s current upload meets this.
Related
- ~/.claude/skills/squarely-deploy/SKILL.md — the workflow skill that consumes this catalogue
- ~/.claude/scripts/asc-api.sh — the ASC API wrapper
- ../04-tooling/2026-04-30-ip-restricted-policies-tracker — credential storage for ASC API key
- 2026-04-25-squarely-current-state-review — Squarely state of bet, the deploy target
- ../02-sops/2026-04-19-newsletter-output-invariants — invariant-audit pattern this catalogue extends to iOS deployment
- Existing Hudson + AvdLee + Codex iOS skills installed 2026-04-30 (~/.agents/skills/ — install path needs confirmation)