Looking to see what's for lunch today?
If you're interested in how this app communicates with the Studentenwerk Dresden server to fetch meal information, your recent Emeal transactions or how it reads your Emeal balance via NFC, check out EmealKit.
This repository uses Tuist manifests (Project.swift) instead of manually editing the Xcode project file.
tuist generateThis opens MensaDresden.xcworkspace in Xcode.
The app supports a fixture data mode with static canteens, opening hours and meals.
- In debug builds, enable it in
Settings > Developer > Use fixture data. - For automated runs, force it via environment:
MENSA_DATA_MODE=fixturesThis is what the screenshot UI tests use, so screenshots are independent of live API timing (weekends, holidays, current serving windows).
- Make project changes in
Project.swift(targets, dependencies, settings, schemes). - Regenerate with
tuist generate. - Build/test in Xcode or with
xcodebuild.
tuist version
tuist dump
tuist generate --no-openBuilds and releases run locally via fastlane (this project no longer uses Xcode Cloud). Authentication uses an App Store Connect API key — set these (e.g. in a gitignored .envrc.local):
export ASC_KEY_ID="..."
export ASC_ISSUER_ID="..."
export ASC_KEY_FILEPATH="/absolute/path/to/AuthKey_XXXXXXXX.p8"Build and upload a TestFlight build:
fastlane ios betaBuild and upload to App Store Connect (without submitting for review):
fastlane ios releaseBoth lanes run tuist generate first, derive the next build number from the latest TestFlight build, and produce a signed App Store .ipa. Signing uses the project's automatic signing, so the distribution certificate/profile must be available in the local keychain.
Fastlane is configured for automated localized screenshots using the Screenshots UI test target.
fastlane ios screenshotsThis generates fresh screenshots in appstore_screenshots. The devices and languages (and other snapshot options) are configured in fastlane/Snapfile.
To upload screenshots to App Store Connect (without uploading a build or metadata):
fastlane ios upload_screenshotsOr generate and upload in one go:
fastlane ios screenshots_and_uploadFastlane is also configured for localized App Store metadata (name, subtitle, description, keywords, release notes, URLs, review info).
Pull the current metadata from App Store Connect into fastlane/metadata:
fastlane ios download_metadataUpload metadata only (without build and without screenshots):
fastlane ios upload_metadataUpload metadata and already-generated screenshots together:
fastlane ios upload_metadata_and_screenshotsOr generate fresh screenshots first, then upload both metadata and screenshots:
fastlane ios screenshots_and_upload_all_assets




