Raw
1 <?xml version="1.0" encoding="utf-8"?>
2 <!--
3 App Links overlay — release builds only.
4
5 This is NOT the app manifest. It is a build-type source set that AGP's
6 manifest merger folds into the generated app/src/main/AndroidManifest.xml,
7 adding one intent-filter to the existing MainActivity and changing nothing
8 else.
9
10 It lives here, and not in src/main/, because scripts/build-android.sh applies
11 gen-override with `rsync` — a file copy, not an XML merge. An override placed
12 at app/src/main/AndroidManifest.xml *replaces* the manifest Tauri generates,
13 silently dropping MAIN/LAUNCHER, INTERNET, the launcher icon, and the
14 FileProvider. That shipped once: 1.0.1 installed from the Play Store with no
15 launcher entry, so the Store showed no "Open" button. Keep additions in a
16 source set the merger owns, and let Tauri's generated manifest stay untouched.
17
18 The App Links filter must stay in its own <intent-filter>. Android evaluates a
19 filter as a unit — action AND category AND data must all match — so a filter
20 carrying a <data> element can never match the launcher's ACTION_MAIN intent,
21 which has no URI. Merging the two sets of tags into one filter reproduces the
22 same "no Open button" bug.
23
24 Verification also needs https://getsiti.5mb.app/.well-known/assetlinks.json to
25 serve this app's package name and signing-certificate SHA-256 fingerprint,
26 otherwise autoVerify fails and links fall back to a disambiguation dialog.
27 -->
28 <manifest xmlns:android="http://schemas.android.com/apk/res/android">
29 <application>
30 <activity android:name=".MainActivity">
31 <intent-filter android:autoVerify="true">
32 <action android:name="android.intent.action.VIEW" />
33 <category android:name="android.intent.category.DEFAULT" />
34 <category android:name="android.intent.category.BROWSABLE" />
35 <data
36 android:scheme="https"
37 android:host="getsiti.5mb.app" />
38 </intent-filter>
39 </activity>
40 </application>
41 </manifest>