| index a3c6ecf..66a9b12 100644 |
| --- a/main.go |
| +++ b/main.go |
| @@ -838,9 +838,14 @@ func (s *Server) servePage(name string) http.HandlerFunc { |
| // unset. See the enrolment cross-origin contract (web/static/backup.js). |
| const defaultHomeOrigin = "https://home.elevenmessenger.com" |
| |
| -// The iOS app this deployment's instances associate with (team + bundle id) — |
| -// public by definition (it ships in every AASA file and in the app itself). |
| +// The apps this deployment's instances associate with (team + bundle ids) — |
| +// public by definition (they ship in every AASA file and in the apps |
| +// themselves). The Mac id is the server half of Mac universal links |
| +// (docs/native-onboarding.md E.1/E.2, issue #1376): inert until the Mac app |
| +// ships its applinks entitlement (E.2), at which point /join links open the |
| +// app directly instead of riding the custom-scheme handoff. |
| const appleAppID = "J5NDF5PCD8.com.elevenmessenger.messenger" |
| +const appleMacAppID = "J5NDF5PCD8.com.elevenmessenger.messenger.mac" |
| |
| // serveAASA answers Apple's app-site-association probe. Apple's CDN fetches it |
| // when the app installs/updates; matching /join/* links then open in the app |
| @@ -848,7 +853,7 @@ const appleAppID = "J5NDF5PCD8.com.elevenmessenger.messenger" |
| // unauthenticated, and identical on every instance by design. |
| func serveAASA(w http.ResponseWriter, r *http.Request) { |
| w.Header().Set("Content-Type", "application/json") |
| - fmt.Fprintf(w, `{"applinks":{"details":[{"appIDs":[%q],"components":[{"/":"/join/*"}]}]}}`, appleAppID) |
| + fmt.Fprintf(w, `{"applinks":{"details":[{"appIDs":[%q,%q],"components":[{"/":"/join/*"}]}]}}`, appleAppID, appleMacAppID) |
| } |
| |
| // frontendVersion is a short hash of the embedded frontend (web/), computed once at |