The iOS packaging script wrote project.yml into the repo root with
`name: MiniPlayer` and ran xcodegen there, regenerating
MiniPlayer.xcodeproj as an iOS-only project and destroying the macOS
target.
Generate into an isolated dir (.build-ios/xcodegen) under a distinct
project name (MiniPlayerIOS), reference packages/sources by absolute
path so they resolve from the nested location, and archive that
project instead. The macOS project is never touched.
Also wire Assets.xcassets into the iOS target for the app icon.
- Add QR generation of the currently playing URL (macOS window / iOS sheet)
- Encode channel metadata (name/type/group/logo) in the QR payload as
compact JSON; fall back to a plain URL when the payload is too long
for a reliably scannable QR
- Scanning saves the entry into the local library with its channel
metadata and starts playback; legacy plain-URL QR codes still work
- Add iOS QR scanner sheet (AVCaptureMetadataOutput) so scanning is no
longer macOS-only; both scanners share handleScannedCode
- Add optional channel name / group fields to the Add URL dialog and
thread group/logo through addURL/addItem into the library
- Restore session (queue + position) on launch and save on quit for
macOS, not just iOS
- Bundle app icons: generate AppIcon.icns from the macOS iconset when
missing, and compile Assets.xcassets into the iOS app
- build-ios.sh: 设置正确 Team ID (LR8YT5M53U), 添加 GENERATE_INFOPLIST_FILE
- MiniPlayerApp.swift: Bundle.module → Bundle.main (非SPM), @main 条件编译
- 签名: Apple Development + Personal Team provisioning profile
- 产物: MiniPlayer.ipa (584K)