-
Notifications
You must be signed in to change notification settings - Fork 35
feat(webapp): make the iOS app App Store-ready to replace the legacy app #780
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
36 commits
Select commit
Hold shift + click to select a range
62ae643
feat: update Apollon's icon
tamang29 4165cd0
Merge branch 'main' into feat/ios-icon-update
tamang29 5987b90
feat: update Apollon iOS icon, splashscreen
tamang29 a453a1c
fix: use white background
tamang29 44c55de
Merge remote-tracking branch 'origin/main' into feat/ios-icon-update
FelixTJDietrich 69335d6
fix(webapp): use supplied iOS icon artwork
tamang29 c48eb02
Merge branch 'main' into feat/ios-icon-update
tamang29 0ecc2ac
feat(webapp): reuse legacy Apollon launch screen and align iOS splash
FelixTJDietrich 27fdfa6
feat(webapp): drop committed signing team and add screenshot UI-test …
FelixTJDietrich 9fba03c
feat(webapp): add automated App Store screenshot pipeline
FelixTJDietrich 979bd9c
feat(webapp): add App Store metadata and Fastlane release lanes
FelixTJDietrich 9b13697
ci: generalize iOS workflow to TestFlight and App Store destinations
FelixTJDietrich 15ffbbb
fix(webapp): drop Google Fonts and align privacy statement
FelixTJDietrich 67517ee
docs: lead with web, add support page, and document mobile presence
FelixTJDietrich 0eb5fe3
chore(webapp): wire App Store scripts and ignore generated screenshot…
FelixTJDietrich f8cb492
Merge remote-tracking branch 'origin/main' into feat/ios-icon-update
FelixTJDietrich 43bb513
fix(webapp): clear the iOS notch/status bar at rest and show the stat…
FelixTJDietrich a423007
docs(webapp): add App Privacy answers and complete submission prerequ…
FelixTJDietrich f549395
style(webapp): clean up screenshot Swift tooling and exclude vendored…
FelixTJDietrich bac360d
feat(webapp): automate App Store Connect fields code-first via fastlane
FelixTJDietrich 4f18513
feat(webapp): add self-hosted over-the-air live updates for the mobil…
FelixTJDietrich ce65c50
chore(webapp): pin node-pty build off for the @capgo/cli dev dependency
FelixTJDietrich a25320e
fix(webapp): correct OTA signing flow and reuse the existing deploy t…
FelixTJDietrich bd08953
fix(ci): pin appleboy/scp-action to the correct v1.0.0 commit SHA
FelixTJDietrich df5b21f
refactor(webapp): harden OTA, fix seeder drift, de-bloat per review
FelixTJDietrich f5dbf5c
fix(webapp): gate OTA against the native version; iOS 15 fetch timeout
FelixTJDietrich 592178b
docs(webapp): apply prettier formatting to the App Store readiness doc
FelixTJDietrich 03a62d7
docs(webapp): broaden the changeset to cover the font/privacy change
FelixTJDietrich 260c716
fix(webapp): disclose the diagram-owner cookie and the current theme key
FelixTJDietrich 717d015
chore(visual): refresh Playwright baselines
github-actions[bot] 07f87c4
refactor(webapp): extract the flood-fill from the screenshot compositor
FelixTJDietrich cb7c4c2
style(webapp): drop trailing comma in the flood-fill neighbors literal
FelixTJDietrich 2900276
Merge remote-tracking branch 'origin/main' into feat/ios-icon-update
FelixTJDietrich 2dedd20
fix(webapp): add the shared App scheme and sync the new plugin pods
FelixTJDietrich 827eea4
fix(deps): keep the VS Code extension linked to the library workspace
FelixTJDietrich 607985e
fix(webapp): archive pristine signed assets and pin OTA to the deploy…
FelixTJDietrich File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| "@tumaet/webapp": patch | ||
| --- | ||
|
|
||
| Rebuild the iPhone and iPad app on the redesigned editor with the familiar Apollon branding, and stop the web app from loading its font from Google — it is now self-hosted. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| # Codacy configuration. | ||
| # | ||
| # `exclude_paths` is additive to Codacy's default ignores and does not change | ||
| # which analysis tools are enabled — it only tells Codacy to skip these files. | ||
| exclude_paths: | ||
| # Vendored verbatim from the fastlane project | ||
| # (https://github.com/fastlane/fastlane) and updated by re-copying, not by | ||
| # hand. We do not restyle it to local lint rules. | ||
| - "standalone/webapp/ios/App/AppStoreScreenshots/SnapshotHelper.swift" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,105 @@ | ||
| name: ios-live-update | ||
|
|
||
| # Publishes an over-the-air web-bundle update for the mobile app. The bundle is | ||
| # the SAME dist the webapp deploy ships, signed with the Capgo private key, and | ||
| # copied to the directory the webapp nginx serves at /live-updates/. Reuses the | ||
| # EXISTING deployment identity and gateway (VM_* + DEPLOYMENT_GATEWAY_*), so no | ||
| # new key or user is introduced. Runs on manual dispatch and is callable from | ||
| # the production deploy so a normal deploy also publishes the matching bundle. | ||
| # | ||
| # Uses (already configured for deploys): | ||
| # secrets: CAPGO_PRIVATE_KEY, VM_SSH_PRIVATE_KEY, DEPLOYMENT_GATEWAY_SSH_KEY | ||
| # vars: CAPGO_PUBLIC_KEY, CAPGO_MIN_NATIVE_VERSION, VM_HOST, VM_USERNAME, | ||
| # DEPLOYMENT_GATEWAY_HOST, DEPLOYMENT_GATEWAY_USER, DEPLOYMENT_GATEWAY_PORT | ||
|
|
||
| on: | ||
| workflow_dispatch: | ||
| inputs: | ||
| source-ref: | ||
| description: > | ||
| Commit to package, as the deployed image tag (`sha-<commit>`) or a raw | ||
| commit SHA. Empty uses the dispatched ref. | ||
| required: false | ||
| type: string | ||
| workflow_call: | ||
| inputs: | ||
| source-ref: | ||
| description: "Deployed image tag (`sha-<commit>`) or commit SHA to package." | ||
| required: false | ||
| type: string | ||
|
|
||
| concurrency: | ||
| group: ios-live-update-${{ github.ref }} | ||
| cancel-in-progress: false | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| jobs: | ||
| publish: | ||
| runs-on: ubuntu-latest | ||
| environment: Production | ||
| steps: | ||
| # `sha-<commit>` is the tag convention build-and-push publishes images under, | ||
| # so stripping the prefix yields the commit the deployed image was built from. | ||
| - name: Resolve the commit to package | ||
| id: source | ||
| run: | | ||
| REF="${{ inputs.source-ref }}" | ||
| echo "ref=${REF#sha-}" >> "$GITHUB_OUTPUT" | ||
|
|
||
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | ||
| with: | ||
| ref: ${{ steps.source.outputs.ref }} | ||
|
|
||
| - uses: pnpm/action-setup@ac6db6d3c1f721f886538a378a2d73e85697340a # v6.0.8 | ||
| - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6 | ||
| with: | ||
| node-version-file: .nvmrc | ||
| cache: pnpm | ||
|
|
||
| - name: Install dependencies | ||
| run: pnpm install --frozen-lockfile | ||
|
|
||
| - name: Build web bundle | ||
| run: | | ||
| pnpm --filter @tumaet/apollon run build | ||
| pnpm --filter @tumaet/webapp run build | ||
|
|
||
| - name: Build + sign the live-update bundle | ||
| working-directory: standalone/webapp | ||
| env: | ||
| CAPGO_PRIVATE_KEY: ${{ secrets.CAPGO_PRIVATE_KEY }} | ||
| CAPGO_PUBLIC_KEY: ${{ vars.CAPGO_PUBLIC_KEY }} | ||
| CAPGO_MIN_NATIVE_VERSION: ${{ vars.CAPGO_MIN_NATIVE_VERSION }} | ||
| run: pnpm run live-update:build | ||
|
|
||
| # Upload the immutable bundle zip(s) FIRST so the manifest never points at | ||
| # a file that is not yet on the host. | ||
| - name: Copy bundle zips to the VM | ||
| uses: appleboy/scp-action@ff85246acaad7bdce478db94a363cd2bf7c90345 # v1.0.0 | ||
| with: | ||
| host: ${{ vars.VM_HOST }} | ||
| username: ${{ vars.VM_USERNAME }} | ||
| key: ${{ secrets.VM_SSH_PRIVATE_KEY }} | ||
| proxy_host: ${{ vars.DEPLOYMENT_GATEWAY_HOST }} | ||
| proxy_username: ${{ vars.DEPLOYMENT_GATEWAY_USER }} | ||
| proxy_key: ${{ secrets.DEPLOYMENT_GATEWAY_SSH_KEY }} | ||
| proxy_port: ${{ vars.DEPLOYMENT_GATEWAY_PORT }} | ||
| source: "standalone/webapp/live-updates-dist/*.zip" | ||
| target: "/opt/apollon/app/live-updates/" | ||
| strip_components: 3 | ||
|
|
||
| - name: Copy manifest to the VM | ||
| uses: appleboy/scp-action@ff85246acaad7bdce478db94a363cd2bf7c90345 # v1.0.0 | ||
| with: | ||
| host: ${{ vars.VM_HOST }} | ||
| username: ${{ vars.VM_USERNAME }} | ||
| key: ${{ secrets.VM_SSH_PRIVATE_KEY }} | ||
| proxy_host: ${{ vars.DEPLOYMENT_GATEWAY_HOST }} | ||
| proxy_username: ${{ vars.DEPLOYMENT_GATEWAY_USER }} | ||
| proxy_key: ${{ secrets.DEPLOYMENT_GATEWAY_SSH_KEY }} | ||
| proxy_port: ${{ vars.DEPLOYMENT_GATEWAY_PORT }} | ||
| source: "standalone/webapp/live-updates-dist/manifest.json" | ||
| target: "/opt/apollon/app/live-updates/" | ||
| strip_components: 3 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.