thu-info-app
An APP aimed at integrating various sources of campus information.
Checkout our official website!
Release
Android:
iOS: App StoreHarmonyOS: AppGallery
Verify downloads
Push builds generate GitHub build provenance attestations for the Android APK, iOS IPA, and signed HarmonyOS HAP and APP artifacts. These attestations identify the source revision and workflow that produced the exact downloaded bytes. They apply to CI artifacts, including APKs distributed through GitHub Releases and mirrors, provided the file is unchanged. They do not cover binaries subsequently processed by app stores. iOS attestation runs after the existing TestFlight upload.
Install the GitHub CLI and authenticate with gh auth login. To verify an Android release download, set the tag and local file path:
TAG=vX.Y.Z # Replace with the downloaded release's tag.
FILE="THUInfo_release_${TAG}.apk"
gh attestation verify "$FILE" \
-R thu-info-community/thu-info-app \
--signer-workflow thu-info-community/thu-info-app/.github/workflows/ci.yml \
--source-ref "refs/tags/$TAG"
gh release verify "$TAG" -R thu-info-community/thu-info-app
gh release verify-asset "$TAG" "$FILE" -R thu-info-community/thu-info-app
For branch CI artifacts, use the downloaded artifact's path and replace refs/tags/$TAG with refs/heads/BRANCH. Add --source-digest COMMIT_SHA to verify a specific build revision. The two gh release commands apply only to immutable GitHub Releases and their attached assets; GitHub Releases contain the Android APK only. Builds predating attestation support cannot be verified with these commands.
Release immutability setup
After the attestation workflow is validated, enable Settings → General → Releases → Enable release immutability in this GitHub repository. This repository setting is required to generate automatic release attestations and applies only to future releases. See GitHub's setup instructions.
Tagged Android builds attest the APK before the release action uploads it to a draft and publishes the release. Tags containing a hyphen, such as v3.17.0-alpha1, are published as prereleases and do not replace the latest stable release. Failed drafts can be retried. Reruns for an already published immutable release generate new CI artifacts and attestations but skip release publication. To publish changed binaries, create a new version tag: published immutable assets and their associated tag cannot be replaced or moved.
If you are a developer...
Build from source
Prerequisites
Android
- Node.js >= 18
- Yarn Classic
- JDK >= 17
- Android Studio or Intellij IDEA with
Android SDK Platform 34andAndroid SDK Build-Tools 34.0.0installed.
iOS
Make sure you have Xcode >= 12 installed and the command line tools enabled.
We recommend using Homebrew to install the tools required.
brew install node
brew install yarn
brew install cocoapods
brew install watchman # optional, install only for higher development performance
HarmonyOS
- DevEco Studio
- Yarn Classic
RNOH_C_API_ARCH=1 set.
Building (Android, iOS)
cd thu-info-app
yarn
yarn android # For Android
npx pod-install && yarn ios # For iOS
Building (HarmonyOS)
cd thu-info-app
./setup-harmony.sh
cd apps/thu-info-app
yarn codegen-harmony
yarn bundle-harmony
Build and run project with DevEco Studio.
Optional: for react-native hot reload
> yarn start >> hdc rport tcp:8081 tcp:8081
Contributing
Please follow the Contributing guidelines.
Commercial Use
The source code is licenced under Business Source License 1.1, and is not allowed for commercial use unless explicitly granted by UNIDY2002 or after the Change Date arrives.
Acknowledgement
Great thanks to the learnX project, without referring to whose code the migration to React Native would never be as smooth.
Best regards to the JavaScript and the React Native community.