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
80 lines
2.3 KiB
YAML
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
|