7.5 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-состояние, переподключение с задержкой, остановка сети в фоне и восстановление при возврате. Команды автоматически не повторяются.
Статус: первый вариант собирается в GitHub Actions на macOS, Xcode 16.4,
Swift 6.1.2. Семь XCTest прошли на симуляторе iOS 18.5; проверка на физическом
iPhone и соединение с Windows-агентом ещё не выполнены.
Успешный запуск
проверяет исходники коммита a761431.
Сборка на Mac
- Открыть
MusicBridge.xcodeprojв Xcode 16 или новее. - Выбрать схему MusicBridge и симулятор iPhone. Run запускает приложение,
Test выполняет
MusicBridgeTests. - Для физического iPhone выбрать свою Team в Signing & Capabilities. Сертификаты
и provisioning profiles не хранить в Git. Bundle ID при необходимости сменить
в
tools/generate_project.py, затем повторно сгенерировать проект. - На ПК запустить агент с
--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.
Установка на iPhone через Sideloadly
Пользователь также подтвердил установку через iloader. Для повторной установки
после исправления TLS используйте версию 0.1.1 (build 2):
build/iPhone-0.1.1/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.
- Скачать артефакт MusicBridge-iPhone из успешного запуска Actions и распаковать
ZIP артефакта, чтобы получить файл
.ipa. - Подключить разблокированный iPhone к Windows кабелем; подтвердить доверие ПК.
- Открыть Sideloadly, выбрать свой iPhone и файл
MusicBridge-iPhone.ipa. - Войти в Apple Account непосредственно в Sideloadly, нажать Start, дождаться Done.
- Если iPhone сообщает о недоверенном разработчике, открыть «Настройки → Основные → VPN и управление устройством», выбрать свой аккаунт и подтвердить доверие.
- Для запуска включить «Настройки → Конфиденциальность и безопасность → Режим разработчика», затем выполнить предложенные iPhone перезагрузку и подтверждение.
- Открыть MusicBridge, разрешить локальную сеть и выполнить сопряжение с ПК.
На бесплатном Apple Account подпись действует 7 дней; её нужно обновлять через Sideloadly (в том числе его функцией автоматического обновления). Файл MusicBridge-simulator.zip для установки на телефон не подходит.
Sideloadly FAQ · Apple: режим разработчика
Источники
- Apple: проверка доверия сервера
- Apple: доступ к локальной сети
- GitHub: macOS runners
- GitHub: лимиты и оплата Actions
План и ограничения — в PLAN.md. Копия протокола агента — в PROTOCOL.md.