Document UI release and remaining device checks [skip ci]
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
# MusicBridge iOS — план
|
# MusicBridge iOS — план
|
||||||
|
|
||||||
Обновлено: 2026-09-12. Пользователь разрешил начать нативное iOS-приложение.
|
Обновлено: 2026-09-13. Пользователь разрешил начать нативное iOS-приложение.
|
||||||
Репозиторий: `C:/Users/areso/iOS MusicBridge`; origin — dev.yukinoki.ru/musicbridge/ios.
|
Репозиторий: `C:/Users/areso/iOS MusicBridge`; origin — dev.yukinoki.ru/musicbridge/ios.
|
||||||
Windows-агент — соседний проект `C:/Users/areso/MusicBridge/MusicBridge.Agent`.
|
Windows-агент — соседний проект `C:/Users/areso/MusicBridge/MusicBridge.Agent`.
|
||||||
|
|
||||||
@@ -41,7 +41,9 @@ Windows-агент — соседний проект `C:/Users/areso/MusicBridge
|
|||||||
- [x] QR через камеру работает на физическом iPhone — подтверждено пользователем после установки 0.2.0.
|
- [x] QR через камеру работает на физическом iPhone — подтверждено пользователем после установки 0.2.0.
|
||||||
- [ ] Отдельно проверить оба входа (встроенный сканер и стандартная камера), отказ в доступе к камере, Bonjour и смену IP на физическом iPhone.
|
- [ ] Отдельно проверить оба входа (встроенный сканер и стандартная камера), отказ в доступе к камере, Bonjour и смену IP на физическом iPhone.
|
||||||
- [x] Реализованы понятные ошибки сопряжения по кодам сервера, повтор загрузки обложки после 404 и ручной повтор.
|
- [x] Реализованы понятные ошибки сопряжения по кодам сервера, повтор загрузки обложки после 404 и ручной повтор.
|
||||||
- [ ] Иконка приложения, визуальная проверка разных размеров экрана и Dynamic Type.
|
- [x] Иконка приложения и обновлённый интерфейс подключения/плеера.
|
||||||
|
- [x] Просмотрены снимки 0.4.0: подключение, светлая/тёмная темы, iPhone SE и крупный текст.
|
||||||
|
- [ ] Проверить новый интерфейс и иконку 0.4.0 на физическом iPhone.
|
||||||
- [ ] Live Activities / Dynamic Island / App Intents — отдельный последующий этап.
|
- [ ] Live Activities / Dynamic Island / App Intents — отдельный последующий этап.
|
||||||
|
|
||||||
Ограничения: хранится один доверенный ПК; адрес при смене IP восстанавливается через
|
Ограничения: хранится один доверенный ПК; адрес при смене IP восстанавливается через
|
||||||
@@ -131,13 +133,35 @@ Bonjour, если доступны объявления того же агент
|
|||||||
|
|
||||||
1. **Устойчивость и ошибки — версия 0.3.0 (build 4).** Исправления и автоматические
|
1. **Устойчивость и ошибки — версия 0.3.0 (build 4).** Исправления и автоматические
|
||||||
проверки завершены. Следующий ручной шаг — проверка на iPhone.
|
проверки завершены. Следующий ручной шаг — проверка на iPhone.
|
||||||
2. **Интерфейс.** Иконка, размеры/крупный текст, удобство плеера и состояния пустого
|
2. **Интерфейс — версия 0.4.0 (build 5).** Добавлены иконка, компактный экран QR,
|
||||||
экрана. Сохранять рабочие сценарии QR и ручного подключения.
|
раскрываемые ручные поля, крупная play/pause, процент громкости и меню ПК.
|
||||||
|
Сборка и 23 XCTest прошли; просмотрены темы, компактный экран и крупный текст.
|
||||||
|
Сценарии QR и ручного подключения сохранены; нужна проверка на телефоне.
|
||||||
3. **Системные интеграции.** Сначала исследовать актуальные ограничения Live Activities,
|
3. **Системные интеграции.** Сначала исследовать актуальные ограничения Live Activities,
|
||||||
Dynamic Island, App Intents и локальной связи в фоне; затем реализовать доступные
|
Dynamic Island, App Intents и локальной связи в фоне; затем реализовать доступные
|
||||||
сценарии. Не имитировать фоновое аудио. Не обещать постоянный WSS при блокировке.
|
сценарии. Не имитировать фоновое аудио. Не обещать постоянный WSS при блокировке.
|
||||||
4. **Несколько сохранённых ПК** — последующее расширение, сейчас сохраняется один.
|
4. **Несколько сохранённых ПК** — последующее расширение, сейчас сохраняется один.
|
||||||
|
|
||||||
|
Изменения второго этапа:
|
||||||
|
|
||||||
|
- Итоговый `aa0b0f0`: [Actions 34746477145](https://github.com/polskikh13/musicbridgeios/actions/runs/34746477145)
|
||||||
|
— 23 XCTest без отказов и успешный Release archive. Итоговая IPA скачана в
|
||||||
|
`build/iPhone-0.4.0/MusicBridge-iPhone.ipa`; проверены ZIP, iPhoneOS ARM64,
|
||||||
|
версия 0.4.0 (5), AppIcon в Info.plist и скомпилированный каталог Assets.car.
|
||||||
|
Снимки находятся в `build/iPhone-0.4.0/final-preview`. На маленьком экране
|
||||||
|
основные кнопки видны сразу; для нижней части громкости может требоваться прокрутка.
|
||||||
|
- `cbd3c0f`: добавлены оригинальная иконка 1024×1024 и каталог AppIcon,
|
||||||
|
карточка QR, раскрываемые ручные поля, меню ПК, крупная play/pause и процент громкости.
|
||||||
|
- `aa0b0f0`: после просмотра iPhone SE уменьшена обложка по доступной высоте окна;
|
||||||
|
размеры заданы явно, чтобы заглушка оставалась квадратной. Исполнитель выровнен по центру.
|
||||||
|
- В Debug есть изолированный предпросмотр с примером трека и памятью вместо Keychain;
|
||||||
|
в Release этот режим недоступен. CI сохраняет светлый/тёмный плеер, крупный текст,
|
||||||
|
компактный экран и подключение. Ошибка Keychain -34018 на снимке подключения
|
||||||
|
относится к неподписанному запуску в CI; доступ к Keychain на телефоне требует подписи.
|
||||||
|
- Ручная проверка обновления: установить IPA через iloader, проверить иконку,
|
||||||
|
сохранённое сопряжение, QR, меню ПК, перемотку и громкость; повторить с крупным
|
||||||
|
системным шрифтом и тёмной темой. Реальную камеру и домашнюю сеть CI не проверяет.
|
||||||
|
|
||||||
Изменения первого этапа:
|
Изменения первого этапа:
|
||||||
|
|
||||||
- Итоговый `bde6f7a`: [Actions 34712051233](https://github.com/polskikh13/musicbridgeios/actions/runs/34712051233)
|
- Итоговый `bde6f7a`: [Actions 34712051233](https://github.com/polskikh13/musicbridgeios/actions/runs/34712051233)
|
||||||
|
|||||||
@@ -3,10 +3,11 @@
|
|||||||
Нативный пульт на SwiftUI для MusicBridge.Agent на Windows. Звук играет на ПК.
|
Нативный пульт на SwiftUI для MusicBridge.Agent на Windows. Звук играет на ПК.
|
||||||
Минимальная версия iOS — 17. Зависимостей Swift Package/CocoaPods нет.
|
Минимальная версия iOS — 17. Зависимостей Swift Package/CocoaPods нет.
|
||||||
|
|
||||||
## Первый вариант
|
## Возможности
|
||||||
|
|
||||||
- Сопряжение по HTTPS-адресу домашнего ПК, SHA-256 сертификата и коду.
|
- Сопряжение по HTTPS-адресу домашнего ПК, SHA-256 сертификата и коду.
|
||||||
- Импорт строки `musicbridge://pair?data=…` из QR агента; камера пока не реализована.
|
- Сканирование QR агента камерой, открытие `musicbridge://pair?data=…` и ручной ввод.
|
||||||
|
- Поиск компьютера через Bonjour и восстановление адреса доверенного ПК.
|
||||||
- Проверка закреплённого DER-сертификата до отправки кода и при следующих соединениях.
|
- Проверка закреплённого DER-сертификата до отправки кода и при следующих соединениях.
|
||||||
- Хранение адреса, отпечатка и токена в Keychain только на этом устройстве.
|
- Хранение адреса, отпечатка и токена в Keychain только на этом устройстве.
|
||||||
- Название, исполнитель, обложка, позиция, play/pause, следующий/предыдущий трек,
|
- Название, исполнитель, обложка, позиция, play/pause, следующий/предыдущий трек,
|
||||||
@@ -14,11 +15,10 @@
|
|||||||
- WSS-состояние, переподключение с задержкой, остановка сети в фоне и восстановление
|
- WSS-состояние, переподключение с задержкой, остановка сети в фоне и восстановление
|
||||||
при возврате. Команды автоматически не повторяются.
|
при возврате. Команды автоматически не повторяются.
|
||||||
|
|
||||||
**Статус:** первый вариант собирается в GitHub Actions на macOS, Xcode 16.4,
|
**Статус:** пользователь подтвердил установку через iloader, рабочий пилот с
|
||||||
Swift 6.1.2. Семь XCTest прошли на симуляторе iOS 18.5; проверка на физическом
|
Windows-агентом и подключение по QR. В 0.4.0 добавлены иконка и обновлённый
|
||||||
iPhone и соединение с Windows-агентом ещё не выполнены.
|
интерфейс. Автоматические проверки включают 23 XCTest и Release archive;
|
||||||
[Успешный запуск](https://github.com/polskikh13/musicbridgeios/actions/runs/34444563869)
|
полная проверка устойчивости на физических устройствах остаётся в `PLAN.md`.
|
||||||
проверяет исходники коммита `a761431`.
|
|
||||||
|
|
||||||
## Сборка на Mac
|
## Сборка на Mac
|
||||||
|
|
||||||
@@ -53,12 +53,12 @@ Apple ID и сертификаты для этой проверки не тре
|
|||||||
|
|
||||||
## Подключение через QR и поиск ПК
|
## Подключение через QR и поиск ПК
|
||||||
|
|
||||||
В версии 0.2.0 откройте окно сопряжения в Windows-агенте (`--tray --lan`),
|
Откройте окно сопряжения в Windows-агенте (`--tray --lan`),
|
||||||
на iPhone нажмите «Сканировать QR с ПК» и разрешите камеру. После сканирования
|
на iPhone нажмите «Сканировать QR» и разрешите камеру. После сканирования
|
||||||
нажмите «Подключить компьютер». Ссылки `musicbridge://` также открываются
|
нажмите «Подключить компьютер». Ссылки `musicbridge://` также открываются
|
||||||
из стандартной камеры. Приглашение должно быть свежим.
|
из стандартной камеры. Приглашение должно быть свежим.
|
||||||
|
|
||||||
В разделе «Найти ПК в сети» можно выбрать найденный адрес. Сверьте **весь**
|
В разделе «Найти компьютер» можно выбрать найденный адрес. Сверьте **весь**
|
||||||
предложенный отпечаток с экраном ПК и введите код. Если поиск не работает,
|
предложенный отпечаток с экраном ПК и введите код. Если поиск не работает,
|
||||||
проверьте доступ к локальной сети в настройках MusicBridge; ручной ввод остаётся.
|
проверьте доступ к локальной сети в настройках MusicBridge; ручной ввод остаётся.
|
||||||
При смене адреса уже доверенного ПК приложение пробует объявления с тем же
|
При смене адреса уже доверенного ПК приложение пробует объявления с тем же
|
||||||
@@ -67,11 +67,15 @@ Apple ID и сертификаты для этой проверки не тре
|
|||||||
## Установка на iPhone через Sideloadly
|
## Установка на iPhone через Sideloadly
|
||||||
|
|
||||||
Пользователь также подтвердил установку через iloader. Для повторной установки
|
Пользователь также подтвердил установку через iloader. Для повторной установки
|
||||||
с исправлениями устойчивости используйте версию **0.3.0 (build 4)**:
|
с новым интерфейсом используйте версию **0.4.0 (build 5)**:
|
||||||
`build/iPhone-0.3.0/MusicBridge-iPhone.ipa`. Выберите этот файл в iloader и
|
`build/iPhone-0.4.0/MusicBridge-iPhone.ipa`. Выберите этот файл в iloader и
|
||||||
подпишите тем же Apple Account, которым установлена первая версия.
|
подпишите тем же Apple Account, которым установлена первая версия.
|
||||||
|
|
||||||
В 0.3.0 обложка повторно загружается после временного сбоя, а после четырёх
|
В 0.4.0 добавлены иконка, карточка QR, раскрываемые ручные поля, крупная
|
||||||
|
play/pause, процент громкости и меню компьютера. Размер обложки зависит от
|
||||||
|
доступной высоты окна; при крупном системном шрифте экран прокручивается.
|
||||||
|
|
||||||
|
Начиная с 0.3.0 обложка повторно загружается после временного сбоя, а после четырёх
|
||||||
неудачных попыток доступен ручной повтор. Отозванный доступ требует нового
|
неудачных попыток доступен ручной повтор. Отозванный доступ требует нового
|
||||||
сопряжения; автоматические попытки прекращаются. Если свернуть приложение во
|
сопряжения; автоматические попытки прекращаются. Если свернуть приложение во
|
||||||
время сопряжения, повторите его со свежим QR (удалив созданную запись на ПК,
|
время сопряжения, повторите его со свежим QR (удалив созданную запись на ПК,
|
||||||
|
|||||||
Reference in New Issue
Block a user