From the generated project to the stores
Church Vault writes a project with the church name, colors, and package id already set. Apple and Google still require the church’s own developer accounts and signing keys. Those cannot be created from here.
Google Play
- Create a Play Console account for the church.
- Create an upload keystore once and store it outside the project:
keytool -genkeypair -v -keystore church-upload.keystore -alias upload -keyalg RSA -keysize 2048 -validity 10000 - Set
ANDROID_KEYSTORE,ANDROID_KEY_ALIAS,ANDROID_STORE_PASS, andANDROID_KEY_PASS. - Run
publish-android.ps1in the generated MAUI folder. It builds a signed Android App Bundle. - In Play Console, create the app with the package id printed in
PUBLISH.md, upload the.aabto Internal testing, then promote it. - The next release must use a higher version. Generate the app again in Church Vault so the build number increases, then publish again.
App Store and Transporter
- Enroll the church in the Apple Developer Program and create the app in App Store Connect with the same bundle id.
- On a Mac with Xcode, set
CODESIGN_KEYandCODESIGN_PROFILE, then runpublish-ios.sh. - Open Transporter, sign in with the church’s Apple ID, and deliver the
.ipa. - Finish screenshots, the privacy questionnaire, and review notes in App Store Connect, then submit.
A Windows computer can prepare the project. The iOS archive itself is built on a Mac, or by the GitHub workflow file copied into the project, which runs on a macOS runner.
Windows desktop
Run publish-windows.ps1. It publishes an unpackaged Windows app the office can install. A Microsoft Store listing is separate and is not required.
Hosted PWA
The address /c/your-church is the installable site. Generating a PWA also writes a folder you can host on the church’s own domain, plus a pwa-qr.png that opens the hosted app when scanned. Download the same QR from App files in Your church. Point the exported folder at this Church Vault API so forms and updates still land in the same SQL Server database.
Phones on the same building network
The API address baked into a generated app defaults to the site you generated it from. A phone cannot use localhost. Generate again with the computer’s LAN address, or with the public https address, before you install the app on a device. Android emulators reach the host machine at http://10.0.2.2:port.