moodlit-native/project.yml
till 50202ed34d feat: geteilten ManaOnboardingUI-Einstiegsflow einbauen
Zwei Seiten (Werte, dann Features) im geteilten Apple-Stil-Onboarding, themed via manaTheme. Keine Berechtigungs-Abfrage; Konto nur als Fussnote. Einmalig beim ersten Start via @AppStorage-Gate.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 21:44:17 +02:00

161 lines
5.5 KiB
YAML

name: MoodlitNative
options:
bundleIdPrefix: ev.mana
createIntermediateGroups: true
xcodeVersion: "16.0"
deploymentTarget:
iOS: "18.0"
macOS: "15.0"
developmentLanguage: de
groupSortPosition: top
generateEmptyDirectories: true
packages:
ManaSwiftCore:
path: ../mana-swift-core
ManaSwiftUI:
path: ../mana-swift-ui
settings:
base:
SWIFT_VERSION: "6.0"
SWIFT_STRICT_CONCURRENCY: complete
CURRENT_PROJECT_VERSION: "1"
MARKETING_VERSION: "0.1.0"
GENERATE_INFOPLIST_FILE: "NO"
ENABLE_USER_SCRIPT_SANDBOXING: "YES"
DEAD_CODE_STRIPPING: "YES"
CLANG_ENABLE_MODULES: "YES"
DEVELOPMENT_TEAM: QP3GLU8PH3
targets:
MoodlitNative:
type: application
supportedDestinations: [iOS, macOS]
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: ev.mana.moodlit
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
dependencies:
- package: ManaSwiftCore
product: ManaCore
- package: ManaSwiftCore
product: ManaTokens
- package: ManaSwiftUI
product: ManaAuthUI
- package: ManaSwiftUI
product: ManaThemeUI
- package: ManaSwiftUI
product: ManaOnboardingUI
- target: MoodlitWidgetExtension
embed: true
platformFilter: iOS
sources:
- path: Sources/App
- path: Sources/Features
- path: Sources/Core
- path: Sources/Resources
excludes:
- "Info.plist"
- "MoodlitNative.entitlements"
info:
path: Sources/Resources/Info.plist
properties:
CFBundleShortVersionString: "0.1.0"
CFBundleVersion: "1"
CFBundleDevelopmentRegion: de
CFBundleDisplayName: Moodlit
CFBundleIconName: AppIcon
ITSAppUsesNonExemptEncryption: false
LSApplicationCategoryType: "public.app-category.lifestyle"
UILaunchScreen: {}
UISupportedInterfaceOrientations:
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
UISupportedInterfaceOrientations~ipad:
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationPortraitUpsideDown
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
UIRequiresFullScreen: false
UIStatusBarStyle: UIStatusBarStyleLightContent
NSHomeKitUsageDescription: "Moodlit kann deine HomeKit-Lampen passend zum gewählten Mood einfärben — nur die Lampen, die du explizit in den Moodlit-Einstellungen auswählst. Standortdaten werden nicht gelesen."
NSLocalNetworkUsageDescription: "Moodlit findet deine Philips Hue Bridge im lokalen Netzwerk, um Lampen direkt anzusteuern (ohne Cloud-Roundtrip)."
CFBundleURLTypes:
- CFBundleURLName: "ev.mana.moodlit"
CFBundleURLSchemes:
- moodlit
com.apple.developer.associated-domains:
- "applinks:moodlit.mana.how"
entitlements:
path: Sources/Resources/MoodlitNative.entitlements
properties:
com.apple.security.app-sandbox: true
com.apple.security.network.client: true
com.apple.developer.associated-domains:
- "applinks:moodlit.mana.how"
- "webcredentials:moodlit.mana.how"
# Shared Keychain-Group für Cross-App-SSO. Group-Name
# `ev.mana.session` matched `ManaSharedKeychainGroup` aus
# mana-swift-core. Apple-Dev-Portal muss Capability
# "Keychain Sharing" für dieses Bundle aktiv haben + die
# Group `ev.mana.session` registriert (sonst OSStatus -34018
# errSecMissingEntitlement beim ersten Token-Write).
keychain-access-groups:
- $(AppIdentifierPrefix)ev.mana.session
# HomeKit-Capability für μ-9.3. Apple-Dev-Portal muss
# „HomeKit" für `ev.mana.moodlit` aktiv haben — Setup ist
# frei verfügbar (kein MFi-Review nötig), aber Bundle-Eintrag
# muss vor TestFlight stehen.
com.apple.developer.homekit: true
com.apple.security.application-groups:
- group.ev.mana.moodlit
MoodlitWidgetExtension:
type: app-extension
supportedDestinations: [iOS]
sources:
- path: Widgets/MoodlitWidget
excludes:
- "Resources/Info.plist"
- "Resources/MoodlitWidgetExtension.entitlements"
- path: Sources/Core/Sync/WidgetSnapshot.swift
- path: Sources/Core/Domain/HexColor.swift
info:
path: Widgets/MoodlitWidget/Resources/Info.plist
properties:
CFBundleDisplayName: Moodlit Widget
CFBundleShortVersionString: "0.1.0"
CFBundleVersion: "1"
ITSAppUsesNonExemptEncryption: false
NSExtension:
NSExtensionPointIdentifier: com.apple.widgetkit-extension
entitlements:
path: Widgets/MoodlitWidget/Resources/MoodlitWidgetExtension.entitlements
properties:
keychain-access-groups:
- $(AppIdentifierPrefix)ev.mana.session
com.apple.security.application-groups:
- group.ev.mana.moodlit
dependencies:
- sdk: WidgetKit.framework
- sdk: SwiftUI.framework
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: ev.mana.moodlit.widget
CODE_SIGN_STYLE: Automatic
SKIP_INSTALL: "YES"
INFOPLIST_KEY_CFBundleDisplayName: Moodlit Widget
MoodlitNativeUnitTests:
type: bundle.unit-test
platform: iOS
sources:
- path: Tests/UnitTests
dependencies:
- target: MoodlitNative
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: ev.mana.moodlit.tests