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>
161 lines
5.5 KiB
YAML
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
|