MusicBridge для iPhone

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

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

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

Статус: первый вариант собирается в GitHub Actions на macOS, Xcode 16.4, Swift 6.1.2. Семь XCTest прошли на симуляторе iOS 18.5; проверка на физическом iPhone и соединение с Windows-агентом ещё не выполнены. Успешный запуск проверяет исходники коммита a761431.

Сборка на 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 remote подключён: git@github.com:polskikh13/musicbridgeios.git. GitHub CLI установлен и авторизован; результаты доступны через gh run list --repo polskikh13/musicbridgeios и gh run view <run-id> --repo polskikh13/musicbridgeios --log-failed.

Основной origin: ssh://git@dev.yukinoki.ru:2222/musicbridge/ios.git. Отдельный remote github используется для Actions, основной origin сохранён. Отправка: git push origin main и git push github main. Код автоматически не зеркалируется между серверами. Локальная регрессионная проверка выбора симулятора: python tools/test_select_simulator.py.

Подключение через QR и поиск ПК

В версии 0.2.0 откройте окно сопряжения в Windows-агенте (--tray --lan), на iPhone нажмите «Сканировать QR с ПК» и разрешите камеру. После сканирования нажмите «Подключить компьютер». Ссылки musicbridge:// также открываются из стандартной камеры. Приглашение должно быть свежим.

В разделе «Найти ПК в сети» можно выбрать найденный адрес. Сверьте весь предложенный отпечаток с экраном ПК и введите код. Если поиск не работает, проверьте доступ к локальной сети в настройках MusicBridge; ручной ввод остаётся. При смене адреса уже доверенного ПК приложение пробует объявления с тем же отпечатком и сохраняет новый адрес только после успешной TLS-проверки и авторизации.

Установка на iPhone через Sideloadly

Пользователь также подтвердил установку через iloader. Для повторной установки с QR и поиском ПК используйте версию 0.2.0 (build 3): build/iPhone-0.2.0/MusicBridge-iPhone.ipa. Выберите этот файл в iloader и подпишите тем же Apple Account, которым установлена первая версия.

Workflow также выполняет Release archive для generic/platform=iOS и создаёт MusicBridge-iPhone.ipa в артефакте MusicBridge-iPhone. Это ARM64-сборка для iOS 17+, без подписи. Подпись создаёт Sideloadly на вашем ПК с вашим Apple Account. В Actions не передаются пароль Apple, сертификаты или provisioning profile.

  1. Скачать артефакт MusicBridge-iPhone из успешного запуска Actions и распаковать ZIP артефакта, чтобы получить файл .ipa.
  2. Подключить разблокированный iPhone к Windows кабелем; подтвердить доверие ПК.
  3. Открыть Sideloadly, выбрать свой iPhone и файл MusicBridge-iPhone.ipa.
  4. Войти в Apple Account непосредственно в Sideloadly, нажать Start, дождаться Done.
  5. Если iPhone сообщает о недоверенном разработчике, открыть «Настройки → Основные → VPN и управление устройством», выбрать свой аккаунт и подтвердить доверие.
  6. Для запуска включить «Настройки → Конфиденциальность и безопасность → Режим разработчика», затем выполнить предложенные iPhone перезагрузку и подтверждение.
  7. Открыть MusicBridge, разрешить локальную сеть и выполнить сопряжение с ПК.

На бесплатном Apple Account подпись действует 7 дней; её нужно обновлять через Sideloadly (в том числе его функцией автоматического обновления). Файл MusicBridge-simulator.zip для установки на телефон не подходит.

Sideloadly FAQ · Apple: режим разработчика

Источники

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

S
Description
No description provided
Readme 571 KiB
Languages
Swift 76.7%
Python 21.7%
PowerShell 1%
Shell 0.6%