Skip to content

release: Mac App Store submission on an app-store branch - later #64

Description

@Adron

Summary

The Mac App Store is a later distribution path, on a separate app-store branch, because removing Sparkle breaks the .pkg/.dmg channel that is shipping today. Filed now so the work is visible, not because it is next.

Do not start this until the notarized .pkg release has shipped.

Code changes (on an app-store branch)

  • Remove Sparkle — six locations, per App-Dmg-Pkg-Deployment.md §7a:
    • project.pbxproj (package reference, product dependency, build file)
    • Package.resolved (the sparkle pin)
    • Info.plist (SUFeedURL, SUPublicEDKeyString, the comment block)
    • delete App/Composition/SparkleController.swift
    • delete App/MenuCommands/UpdatesMenuCommands.swift
    • remove sparkleController and UpdatesMenuCommands(…) from App/InterlinedListApp.swift
  • Release signing identityCODE_SIGN_IDENTITY[sdk=macosx*] from Apple Development to Apple Distribution (Release config BABD889F)
  • Version bumpMARKETING_VERSION = 1.0, CURRENT_PROJECT_VERSION = 2 (Debug + Release)

CI secrets (owner-held)

APPSTORE_CERTIFICATES_P12, APPSTORE_CERTIFICATES_P12_PASSWORD, ASC_API_KEY_ID, ASC_API_ISSUER_ID, ASC_API_KEY_P8 (base64 of the .p8downloadable only once, so capture it carefully).

App Store Connect

  • Register bundle ID com.interlinedlist.macos with App Sandbox + Hardened Runtime enabled
  • Create the app record (SKU interlinedlist-macos-001), fill metadata per App-Dmg-Pkg-Deployment.md §6c
  • Screenshots — at least 1, recommend 10 at 2560×1600, into brand-kit/screenshots/appstore/
  • Privacy Nutrition Label (§10)
  • Archive (confirm Apple Distribution signing) → Validate → Upload → select build → App Review Information → Submit

Website — hard blockers for the App Store form

These are backend/site work, deferred until this path is pursued. Neither is needed for the .pkg release.

  • Privacy Policy at https://interlinedlist.com/privacy — data collected, storage, third-party sharing (user-triggered cross-posting only), account deletion in Settings, contact, effective date
  • Support page at https://interlinedlist.com/support — contact, help-doc links, bug reporting
  • Verify both return 200 without login

Demo account for App Review

  • A reviewer account on interlinedlist.com with subscriber access and sample content (posts, one list with rows, one document). Record the credentials in App Store Connect.
  • App Review notes covering the two behaviours a reviewer will otherwise flag:

    "Settings ▸ Linked Accounts opens the default browser for OAuth — return to InterlinedList when done. The 'Following' timeline scope shows a Coming Soon state (the backend feed is not yet available)."

⚠️ Keep those notes current. Several of the open parity issues change what a reviewer sees — in particular, if the following feed lands, the second sentence becomes false and reads as a stale disclosure.

Acceptance criteria

  • The app-store branch builds, archives, and validates with Apple Distribution signing.
  • The .pkg/.dmg channel on dev/main is untouched.

Notes

work-consolidation.md §3c. Deliberately last.

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

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions