What's changed (since v1.0.0-alpha.6)
- fix(release): cap the release heap at 1100 MB
- fix(release): compile before shrinking, in two Gradle calls
- chore(release): bump version to 1.0.0-alpha.7
- docs(changelog): prepare the changelog for v1.0.0-alpha.7
- feat(store): make the privacy policy reachable inside the app and guard it
- fix(release): take the previous release from the date order and show the changelog
- fix(release): compare the release notes with the previous release by date
- docs(release): document the memory settings of the release build
- docs: bring the README and the release train onto v1.0.0-alpha.6
What this release is. The release for the Google Play Store: the privacy
policy is now reachable from inside the app — which Google Play asks for —
and a new gate makes sure it stays in step with the app. The work for the
store publication found a wrong certificate fingerprint in the documentation
that would have broken the Google Cast registration.
Added
- Privacy policy in the app — the settings carry a row Privacy policy
(English, German, French) that opens the policy. On a television without a
browser the address is shown in a dialog instead, so the row never does
nothing. Google Play asks for the policy inside the app as well as in the
store listing. scripts/check-privacy-policy.sh— a new gate: the privacy policy must
name every permission the app declares, must state that it is reachable
from inside the app and must not be older than the manifest. It runs in CI
and in the release pipeline.scripts/test-check-privacy-policy.sh— the self-test of that gate with
six cases, all of them negative: a gate that cannot turn red proves nothing.
One case covers a permission that is declared over several lines — a
single-line parser skips it and passes everything.
Fixed
- The SHA-1 fingerprint of the signing certificate in the documentation was
wrong in four places. The value now in the guides was measured from the
release keystore and from the published.aab:
F4:BF:7B:F0:E1:40:1D:0C:33:EE:85:C2:51:FF:24:12:1B:D5:7C:E4. A Google Cast
registration with the wrong fingerprint does not start.
scripts/cast-registration-info.shcompares the guide with the keystore now
and says so when they differ. - The release guide named the wrong menu path for the Android TV opt-in.
It is Setup → Advanced settings → Form factors → Add release type →
Android TV.
Documented
- The measured state of the Play requirements: Android TV apps need target
API 34 (the general API 36 rule does not apply to a television app), the
bundle carries 64-bit libraries, and the native libraries are aligned to
16 KB page sizes. The order of the steps in the Play Console is documented in
docs/spec/PROJECT_PLAN.md.
Installation
Side-load the APK that matches your device (or upload the AAB to Google Play Console):
- PhairPlay-1.0.0-alpha.7-GoogleTV.apk — Google TV / Android TV APK (Android 10+)
- PhairPlay-1.0.0-alpha.7-FireTV.apk — Amazon Fire TV APK (Android 7.1+)
- PhairPlay-1.0.0-alpha.7-GoogleTV.aab — Google Play Store Android App Bundle (Google TV)
Use adb or a sideloading app like Downloader to install.
What was not tested
This is a prerelease. No television has run this build: 0 of the 16 device test
cases of the device test plan have been executed. Report what you
find as an issue.
The build itself
- The four checks of the quality gate and the JVM protocol suite were green on
the tagged commit. - Both APKs are signed with the release key. An update over an installed version
only works if the key is the same — otherwise uninstall the old version first.