iOS: Add universal links for private session invites - #232
Merged
Conversation
- Add `public/.well-known/apple-app-site-association` declaring `KH5NHCFH44.com.pastepoint.ios` for `/private/*` paths, so the installed iOS app claims private-session invite links. - Add an explicit `angular.json` assets entry for `public/.well-known`; Angular's default `public` glob skips dot-folders, so the file would otherwise never reach the build output.
- Add an exact-match `location = /.well-known/apple-app-site-association` serving from the browser dist with `default_type application/json`; the exact match outranks the `location ~ /\.` hidden-path block below it, so the file stays reachable for iOS universal links. - Drop the redundant self-referencing fallback from the `robots.txt` and `sitemap.xml` blocks; in an exact-match `location =`, `$uri` already equals that path, so `try_files $uri =404` is equivalent and clearer.
- COPY `.well-known/apple-app-site-association` from the build stage into the nginx browser dist; the stage copies only named static files, not the whole dist, so the AASA would otherwise be missing from the served image.
- Add `PastePoint.entitlements` declaring `applinks:pastepoint.com` so the app claims private-session invite links. - Wire `CODE_SIGN_ENTITLEMENTS` to it in both app build configs; automatic signing adds the Associated Domains capability to the App ID on the next device/archive build.
- Add `handleIncomingURL` — validates an invite URL via `AppEnvironment.privateSessionCode(from:)` + `SessionService.isValidSessionCode`, no-ops if already in that session, then mirrors the manual `SettingsJoinPrivateView` join sequence. - Wire it from an `.onOpenURL` handler in `ChatEventHandlers`. - Loosen `setSettingsVisible` from `private` to `internal` so the `ContentView+Handlers` extension can call it from a separate file.
- Seed `lastPathStatus` to `.satisfied` so the initial `NWPathMonitor` callback on a normal cold start is not treated as a drop -> restore transition. The redundant reconnect it triggered was already de-duped by the connect guards, so this is behavior/log hygiene.
- Update the minimum and latest client version requirements to 0.10.0 for iOS and 0.21.0 for Web across all server configurations (development, docker-dev, and production).
- Replace the `id000000000` placeholder in the iOS update-gate `url` with the real App Store ID `6788860511` now that the app record exists; the link resolves to a live listing once the app is published.
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Adds iOS universal link support so
https://pastepoint.com/private/<code>invite links open PastePoint and join the matching private session directly. This also serves the Apple App Site Association file from the web/nginx stack and bumps client version policy for the new release.What changed
Universal links
/private/*links..well-known/apple-app-site-associationin the Angular build assets.application/json.applinks:pastepoint.com.iOS
.onOpenURL.Nginx / static serving
/.well-known/apple-app-site-association.try_filesbehavior forrobots.txtandsitemap.xml.Version policy / bumps
0.10.00.21.00.10.00.21.0