Voller Marketplace-Flow mit TabBar und Universal-Link-Handler. Drei Live-Decks (Geografie, English A2, Periodensystem) sind browse-, abonnier- und lernbar. - PublicDeckEntry/PublicDeck/PublicDeckVersion/PublicDeckOwner/ PublicDeckDetail Codable mit snake_case - ExploreResponse, BrowseResponse, SubscribeResponse - MarketplaceSort-Enum (recent/popular/trending) - CardsAPI.explore/browseMarketplace/publicDeck/subscribe/unsubscribe - MarketplaceStore @Observable mit Explore + Browse States - ExploreView: Featured + Trending Horizontal-Carousels, Browse-Link - BrowseView: Searchable + Sort-Picker + List - PublicDeckView: Header/Metadata/Subscribe — Subscribe löst Auto-Fork serverseitig aus, Response liefert private_deck_id, NavigationLink zum eigenen Deck - PublicDeckCard + BrowseRow mit forest-Theme - RootView: TabBar (Decks/Entdecken/Account) statt Single-View - Universal-Link-Handler: onOpenURL + onContinueUserActivity für https://cardecky.mana.how/d/<slug> und cards://d/<slug> - associated-domains: applinks:cardecky.mana.how im entitlement - 5 neue Marketplace-Decoding-Tests (35 Total grün) Universal-Links funktionieren erst nach AASA-Setup auf cardecky.mana.how/.well-known/apple-app-site-association (Web-Aufgabe, heute 404). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
116 lines
3 KiB
YAML
116 lines
3 KiB
YAML
name: CardsNative
|
|
|
|
options:
|
|
bundleIdPrefix: ev.mana
|
|
createIntermediateGroups: true
|
|
deploymentTarget:
|
|
iOS: "18.0"
|
|
macOS: "15.0"
|
|
developmentLanguage: de
|
|
groupSortPosition: top
|
|
generateEmptyDirectories: true
|
|
|
|
packages:
|
|
ManaSwiftCore:
|
|
path: ../mana-swift-core
|
|
|
|
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"
|
|
|
|
targets:
|
|
CardsNative:
|
|
type: application
|
|
supportedDestinations: [iOS, macOS]
|
|
dependencies:
|
|
- package: ManaSwiftCore
|
|
product: ManaCore
|
|
- package: ManaSwiftCore
|
|
product: ManaTokens
|
|
sources:
|
|
- path: Sources/App
|
|
- path: Sources/Features
|
|
- path: Sources/Core
|
|
- path: Sources/Resources
|
|
excludes:
|
|
- "Info.plist"
|
|
- "CardsNative.entitlements"
|
|
info:
|
|
path: Sources/Resources/Info.plist
|
|
properties:
|
|
CFBundleShortVersionString: "0.1.0"
|
|
CFBundleVersion: "1"
|
|
CFBundleDevelopmentRegion: de
|
|
CFBundleDisplayName: Cards
|
|
LSApplicationCategoryType: "public.app-category.education"
|
|
UILaunchScreen: {}
|
|
CFBundleURLTypes:
|
|
- CFBundleURLName: ev.mana.cards
|
|
CFBundleURLSchemes:
|
|
- cards
|
|
ITSAppUsesNonExemptEncryption: false
|
|
entitlements:
|
|
path: Sources/Resources/CardsNative.entitlements
|
|
properties:
|
|
com.apple.security.app-sandbox: true
|
|
com.apple.security.network.client: true
|
|
com.apple.security.files.user-selected.read-write: true
|
|
keychain-access-groups:
|
|
- $(AppIdentifierPrefix)ev.mana.cards
|
|
com.apple.developer.associated-domains:
|
|
- applinks:cardecky.mana.how
|
|
settings:
|
|
base:
|
|
PRODUCT_BUNDLE_IDENTIFIER: ev.mana.cards
|
|
CODE_SIGN_STYLE: Automatic
|
|
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
|
|
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME: AccentColor
|
|
ENABLE_PREVIEWS: "YES"
|
|
|
|
CardsNativeTests:
|
|
type: bundle.unit-test
|
|
supportedDestinations: [iOS, macOS]
|
|
sources:
|
|
- Tests/UnitTests
|
|
dependencies:
|
|
- target: CardsNative
|
|
settings:
|
|
base:
|
|
PRODUCT_BUNDLE_IDENTIFIER: ev.mana.cards.tests
|
|
GENERATE_INFOPLIST_FILE: "YES"
|
|
|
|
CardsNativeUITests:
|
|
type: bundle.ui-testing
|
|
supportedDestinations: [iOS, macOS]
|
|
sources:
|
|
- Tests/UITests
|
|
dependencies:
|
|
- target: CardsNative
|
|
settings:
|
|
base:
|
|
PRODUCT_BUNDLE_IDENTIFIER: ev.mana.cards.uitests
|
|
GENERATE_INFOPLIST_FILE: "YES"
|
|
|
|
schemes:
|
|
CardsNative:
|
|
build:
|
|
targets:
|
|
CardsNative: all
|
|
CardsNativeTests: [test]
|
|
CardsNativeUITests: [test]
|
|
test:
|
|
targets:
|
|
- CardsNativeTests
|
|
- CardsNativeUITests
|
|
gatherCoverageData: false
|
|
run:
|
|
config: Debug
|
|
archive:
|
|
config: Release
|