NavidromeApp/project.yml
Dallas Groot d8041c0019 NavidromePlayer: iOS + watchOS Navidrome/Subsonic music player
Features:
- Dual-AVPlayer Smart DJ crossfade with LUFS normalization
- Mitsuha-style FFT visualizer (real-time + offline pre-computed)
- Companion API integration (Smart DJ, tag editing, vis frames)
- Offline-first SyncEngine with delta sync and album detail pre-caching
- Audio pre-fetcher for gapless queue playback
- Optimistic action queue (star/unstar with background retry)
- ShazamKit recognition with MusicKit preview playback
- Radio streaming with HLS/PLS/M3U support and buffer seek
- Watch app with Crown Sequencer and Ultra speaker support
- Batch metadata editing with album_artist fix for split albums
- Cache-first UI pattern across all views
- NWPathMonitor offline detection with reactive song greying
2026-03-28 20:49:47 +00:00

80 lines
2.3 KiB
YAML

name: NavidromePlayer
options:
bundleIdPrefix: com.navidromeplayer
deploymentTarget:
iOS: "26.0"
watchOS: "26.0"
xcodeVersion: "26.0"
groupSortPosition: top
createIntermediateGroups: true
settings:
base:
SWIFT_VERSION: "5.9"
MARKETING_VERSION: "1.0.0"
CURRENT_PROJECT_VERSION: 1
DEAD_CODE_STRIPPING: true
ENABLE_USER_SCRIPT_SANDBOXING: true
DEVELOPMENT_TEAM: E9C9AGS9K6
targets:
# ─────────────────────────────────────
# iOS App
# ─────────────────────────────────────
NavidromePlayer:
type: application
platform: iOS
deploymentTarget: "26.0"
sources:
- path: iOS
- path: Shared
resources:
- path: iOS/Resources
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.navidromeplayer.app
INFOPLIST_FILE: iOS/Resources/Info.plist
CODE_SIGN_ENTITLEMENTS: iOS/Resources/NavidromePlayer.entitlements
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
TARGETED_DEVICE_FAMILY: "1,2"
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD: true
dependencies:
- target: NavidromeWatch
# ─────────────────────────────────────
# watchOS App
# ─────────────────────────────────────
NavidromeWatch:
type: application
platform: watchOS
deploymentTarget: "26.0"
sources:
- path: watchOS
- path: Shared
resources:
- path: watchOS/Resources
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.navidromeplayer.app.watchkitapp
INFOPLIST_FILE: watchOS/Resources/Info.plist
CODE_SIGN_ENTITLEMENTS: watchOS/Resources/NavidromeWatch.entitlements
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
WATCHOS_DEPLOYMENT_TARGET: "26.0"
SKIP_INSTALL: false
schemes:
NavidromePlayer:
build:
targets:
NavidromePlayer: all
NavidromeWatch: all
run:
config: Debug
test:
config: Debug
profile:
config: Release
analyze:
config: Debug
archive:
config: Release