Files
ios/README.md
T
ros 6174be5610
iOS build and tests / simulator (push) Has been cancelled
Add native SwiftUI player and macOS CI
2026-09-10 09:11:55 +03:00

4.4 KiB

MusicBridge для iPhone

Нативный пульт на SwiftUI для MusicBridge.Agent на Windows. Звук играет на ПК. Минимальная версия iOS — 17. Зависимостей Swift Package/CocoaPods нет.

Первый вариант

  • Сопряжение по HTTPS-адресу домашнего ПК, SHA-256 сертификата и коду.
  • Импорт строки musicbridge://pair?data=… из QR агента; камера пока не реализована.
  • Проверка закреплённого DER-сертификата до отправки кода и при следующих соединениях.
  • Хранение адреса, отпечатка и токена в Keychain только на этом устройстве.
  • Название, исполнитель, обложка, позиция, play/pause, следующий/предыдущий трек, перемотка ползунком, системная громкость и mute.
  • WSS-состояние, переподключение с задержкой, остановка сети в фоне и восстановление при возврате. Команды автоматически не повторяются.

Статус: исходники первого варианта. Сборка Swift и запуск на устройстве ещё не подтверждены. Windows не содержит Xcode. Следующий обязательный шаг — первый прогон GitHub Actions или Xcode на Mac и исправление обнаруженных ошибок.

Сборка на Mac

  1. Открыть MusicBridge.xcodeproj в Xcode 16 или новее.
  2. Выбрать схему MusicBridge и симулятор iPhone. Run запускает приложение, Test выполняет MusicBridgeTests.
  3. Для физического iPhone выбрать свою Team в Signing & Capabilities. Сертификаты и provisioning profiles не хранить в Git. Bundle ID при необходимости сменить в tools/generate_project.py, затем повторно сгенерировать проект.
  4. На ПК запустить агент с --tray --lan, открыть сопряжение. В приложении ввести адрес, отпечаток и код с экрана ПК. Разрешить доступ к локальной сети.

Проект уже сгенерирован и включён в Git; Python для обычной сборки не требуется. После добавления Swift-файлов выполнить python3 tools/generate_project.py. Структурная проверка на Windows/macOS: python tools/validate_project.py.

GitHub Actions

.github/workflows/ios.yml собирает приложение и выполняет XCTest на macos-15 при push в main, pull request или ручном запуске. Сохраняет лог, .xcresult и ZIP приложения для симулятора, который нельзя установить на физический iPhone. Apple ID и сертификаты для этой проверки не требуются. Первый облачный запуск пока не выполнен: нужен GitHub-репозиторий и авторизованный доступ к нему.

Основной origin: ssh://git@dev.yukinoki.ru:2222/musicbridge/ios.git. Для Actions можно добавить отдельный remote github, сохранив основной origin. Код автоматически не зеркалируется между серверами.

Источники

План и ограничения — в PLAN.md. Копия протокола агента — в PROTOCOL.md.