Prepare and verify Apple App Store distribution #59

Closed
opened 2026-08-09 20:00:48 +00:00 by hugo · 2 comments
Owner

Goal

Make the completed iPhone application and its Apple Watch companion available through the Apple App Store, and verify that the production App Store installation works on a paired iPhone and Apple Watch.

Scope

  • Treat this as the milestone final issue and begin only after the mobile integration and security audit passes.
  • Keep the production iPhone application identifier exactly de.rfc1437.ironstorage; use derived identifiers only for child targets such as the Watch companion and AutoFill extension.
  • Preserve the local-first review path: a user can generate or import a protected GPG key, initialize a local pass-compatible Git repository, create folders and encrypted entries, and use TOTP without configuring a remote. HTTPS Git synchronization remains optional and can be added later.
  • Complete release version and build metadata, icons, privacy manifest and usage descriptions, encryption declaration, MIT and third-party license attribution, support and privacy URLs, App Store screenshots, description, keywords, category, age rating, and review notes.
  • Configure the Apple Developer and App Store Connect records, certificates, provisioning profiles, entitlements, capabilities, agreements, tax and banking state, pricing and availability required for submission.
  • Produce and validate a signed Release archive that embeds the Watch companion correctly, contains only production identifiers and entitlements, and contains no development-only secrets, endpoints, or test data.
  • Upload the archive to App Store Connect, resolve processing and validation findings, complete App Review submission, and release the approved version through the Apple App Store.
  • Verify on a physical iPhone installed from the App Store that onboarding, local key generation and import, overwrite confirmation, local Git history, folder and entry creation, biometric unlock, password browsing, TOTP, and optional HTTPS Git pull and push work.
  • Verify on the paired physical Apple Watch that the companion is offered and installs through the App Store distribution, launches, receives only explicitly shared TOTP entries, shows only entry names in the list, and shows the selected code at the larger size with its validity progress indicator.
  • Verify App Store update behavior and document uninstall and reinstall behavior without losing or leaking secrets beyond the documented secure-storage lifecycle.
  • Keep distribution credentials, signing material, review credentials, GPG material, application tokens, and private diagnostics out of the repository and logs.

Acceptance criteria

  • App Store Connect accepts and processes the production archive, and the archive contains both the iPhone app and the correctly embedded Watch companion.
  • The submitted archive, App Store Connect record, App Store listing, and installed app all identify the main application as de.rfc1437.ironstorage and use the intended derived identifiers for child targets.
  • App Review can exercise the complete local-first application without a Git remote by generating or importing a key, creating folders and encrypted entries, and using TOTP.
  • A clean production device installs and launches the exact release from the Apple App Store, not through a development signature, and the iPhone production smoke test passes.
  • The paired Apple Watch can install and launch the companion from that App Store release, receives the selected TOTP snapshot, and the list, selected-code detail, and validity progress behavior are verified.
  • Optional HTTPS Git synchronization can be configured after local setup and passes pull and push verification without changing the local-first workflow.
  • Update and uninstall or reinstall behavior are verified without losing or leaking secrets beyond the documented secure-storage lifecycle.
  • Distribution credentials, signing material, review credentials, GPG material, application tokens, and private diagnostics are absent from committed files and published diagnostics.
## Goal Make the completed iPhone application and its Apple Watch companion available through the Apple App Store, and verify that the production App Store installation works on a paired iPhone and Apple Watch. ## Scope - Treat this as the milestone final issue and begin only after the mobile integration and security audit passes. - Keep the production iPhone application identifier exactly de.rfc1437.ironstorage; use derived identifiers only for child targets such as the Watch companion and AutoFill extension. - Preserve the local-first review path: a user can generate or import a protected GPG key, initialize a local pass-compatible Git repository, create folders and encrypted entries, and use TOTP without configuring a remote. HTTPS Git synchronization remains optional and can be added later. - Complete release version and build metadata, icons, privacy manifest and usage descriptions, encryption declaration, MIT and third-party license attribution, support and privacy URLs, App Store screenshots, description, keywords, category, age rating, and review notes. - Configure the Apple Developer and App Store Connect records, certificates, provisioning profiles, entitlements, capabilities, agreements, tax and banking state, pricing and availability required for submission. - Produce and validate a signed Release archive that embeds the Watch companion correctly, contains only production identifiers and entitlements, and contains no development-only secrets, endpoints, or test data. - Upload the archive to App Store Connect, resolve processing and validation findings, complete App Review submission, and release the approved version through the Apple App Store. - Verify on a physical iPhone installed from the App Store that onboarding, local key generation and import, overwrite confirmation, local Git history, folder and entry creation, biometric unlock, password browsing, TOTP, and optional HTTPS Git pull and push work. - Verify on the paired physical Apple Watch that the companion is offered and installs through the App Store distribution, launches, receives only explicitly shared TOTP entries, shows only entry names in the list, and shows the selected code at the larger size with its validity progress indicator. - Verify App Store update behavior and document uninstall and reinstall behavior without losing or leaking secrets beyond the documented secure-storage lifecycle. - Keep distribution credentials, signing material, review credentials, GPG material, application tokens, and private diagnostics out of the repository and logs. ## Acceptance criteria - App Store Connect accepts and processes the production archive, and the archive contains both the iPhone app and the correctly embedded Watch companion. - The submitted archive, App Store Connect record, App Store listing, and installed app all identify the main application as de.rfc1437.ironstorage and use the intended derived identifiers for child targets. - App Review can exercise the complete local-first application without a Git remote by generating or importing a key, creating folders and encrypted entries, and using TOTP. - A clean production device installs and launches the exact release from the Apple App Store, not through a development signature, and the iPhone production smoke test passes. - The paired Apple Watch can install and launch the companion from that App Store release, receives the selected TOTP snapshot, and the list, selected-code detail, and validity progress behavior are verified. - Optional HTTPS Git synchronization can be configured after local setup and passes pull and push verification without changing the local-first workflow. - Update and uninstall or reinstall behavior are verified without losing or leaking secrets beyond the documented secure-storage lifecycle. - Distribution credentials, signing material, review credentials, GPG material, application tokens, and private diagnostics are absent from committed files and published diagnostics.
hugo added this to the 04 - iPhone and Apple Watch apps milestone 2026-08-09 20:00:48 +00:00
hugo added the enhancement label 2026-08-09 20:00:48 +00:00
hugo changed title from Prepare and verify AltStore PAL distribution to Prepare and verify Apple AppStore distribution 2026-08-16 15:30:24 +00:00
hugo changed title from Prepare and verify Apple AppStore distribution to Prepare and verify Apple App Store distribution 2026-08-16 15:33:01 +00:00
hugo added the untested label 2026-08-16 15:56:30 +00:00
Author
Owner

Implemented and pushed commit f894d43.

Completed:

  • Added local-first onboarding with protected local GPG key generation or private-key import, explicit replacement confirmation, a real local Git repository, one root .gpg-id policy, and optional HTTPS remote attachment later.
  • Added folder creation without unlocking; encrypted entries inherit the nearest recipient policy and remain the only encrypted repository objects.
  • Added local-only Home and Preferences states, updated UniFFI/Swift flows, and preserved key import/export.
  • Added MIT licensing and generated third-party attribution with no GPL-licensed dependency forcing a GPL project license.
  • Added App Store metadata, privacy/support pages, six iPhone screenshots, two Watch screenshots, release verification, export options, and submission/physical validation documentation.
  • Embedded both the existing AutoFill extension and Apple Watch app in the iPhone Release bundle.
  • Published the IronStorage App Store preparation page and screenshots alongside Gotcha on rfc1437.de.

Validation:

  • cargo fmt --all -- --check
  • RUSTFLAGS=-D warnings cargo check --workspace --all-targets
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo test --workspace
  • xcodegen generate
  • Release simulator build for the iPhone scheme
  • Release bundle inspection confirmed de.rfc1437.ironstorage.autofill in PlugIns and de.rfc1437.ironstorage.watch in Watch
  • App Store release verifier passed with 6 iPhone and 2 Watch screenshots
  • Computer Use validation passed on the iPhone and paired Watch simulators with synthetic local-only demo data: local Git status, folders/passwords, TOTP list/detail, Watch entry-only list, selected larger code, and validity progress

Still required before closure:

  • This Mac currently has only Apple Development signing identities, so a signed App Store distribution archive cannot be produced or uploaded here.
  • App Store Connect processing, review, and release are not complete.
  • The exact App Store release has therefore not been installed and tested on the paired physical iPhone and Apple Watch.
  • App Store update and uninstall/reinstall lifecycle checks remain outstanding.

Marked untested and intentionally kept open; closing it now would falsely claim the production App Store acceptance criteria passed.

Implemented and pushed commit f894d43. Completed: - Added local-first onboarding with protected local GPG key generation or private-key import, explicit replacement confirmation, a real local Git repository, one root .gpg-id policy, and optional HTTPS remote attachment later. - Added folder creation without unlocking; encrypted entries inherit the nearest recipient policy and remain the only encrypted repository objects. - Added local-only Home and Preferences states, updated UniFFI/Swift flows, and preserved key import/export. - Added MIT licensing and generated third-party attribution with no GPL-licensed dependency forcing a GPL project license. - Added App Store metadata, privacy/support pages, six iPhone screenshots, two Watch screenshots, release verification, export options, and submission/physical validation documentation. - Embedded both the existing AutoFill extension and Apple Watch app in the iPhone Release bundle. - Published the IronStorage App Store preparation page and screenshots alongside Gotcha on rfc1437.de. Validation: - cargo fmt --all -- --check - RUSTFLAGS=-D warnings cargo check --workspace --all-targets - cargo clippy --workspace --all-targets -- -D warnings - cargo test --workspace - xcodegen generate - Release simulator build for the iPhone scheme - Release bundle inspection confirmed de.rfc1437.ironstorage.autofill in PlugIns and de.rfc1437.ironstorage.watch in Watch - App Store release verifier passed with 6 iPhone and 2 Watch screenshots - Computer Use validation passed on the iPhone and paired Watch simulators with synthetic local-only demo data: local Git status, folders/passwords, TOTP list/detail, Watch entry-only list, selected larger code, and validity progress Still required before closure: - This Mac currently has only Apple Development signing identities, so a signed App Store distribution archive cannot be produced or uploaded here. - App Store Connect processing, review, and release are not complete. - The exact App Store release has therefore not been installed and tested on the paired physical iPhone and Apple Watch. - App Store update and uninstall/reinstall lifecycle checks remain outstanding. Marked untested and intentionally kept open; closing it now would falsely claim the production App Store acceptance criteria passed.
hugo removed the untested label 2026-08-16 17:48:58 +00:00
Author
Owner

submitted to app store

submitted to app store
hugo closed this issue 2026-08-16 17:49:06 +00:00
Sign in to join this conversation.