Решение проблем
Передача зависает или никогда не подключается
CrocApp одновременно пробует прямое соединение по локальной сети и через релей, используя то, что подключилось первым. Обнаружение узлов в локальной сети использует UDP-мультикаст, и это не гарантированно работает в любой сети — некоторые сети (например, Wi-Fi с изоляцией клиентов) вообще не находят локальных узлов, хотя путь через релей при этом работает нормально. Если передача зависла на "Waiting" или "Connecting":
- Проверьте, что у обоих устройств есть рабочий доступ в интернет, чтобы путь через релей работал, даже если локальный путь не работает.
- Проверьте разрешение на доступ к локальной сети ниже.
- Для сети, которая полностью блокирует мультикаст-обнаружение, встроенного решения в приложении нет; передача всё равно должна завершиться через релей.
Код отклонён, или кнопка приёма остаётся неактивной
- Кодовая фраза должна содержать не менее 6 символов. Кнопка Receive остаётся неактивной, пока не введено достаточно символов.
- Неверный код сразу приводит к ошибке, а не к зависанию.
- Если вы используете собственный код также для тестирования или скриптов, учтите, что коды с одинаковыми первыми 4 символами могут столкнуться в одной комнате релея. У сгенерированных кодов такой проблемы нет.
Другая сторона использует другую версию croc
CrocApp встраивает croc v10.5.0 в качестве движка. Он создан для совместимости с croc CLI в обе стороны. Если на другой стороне работает очень старая или необычно новая сборка croc, используйте достаточно свежую версию CLI, чтобы избежать несовместимости протокола.
Ограничения фонового режима iOS
iOS не позволяет произвольным TCP-передачам работать в фоне сколь угодно долго. CrocApp использует BGContinuedProcessingTask (iOS 26+), чтобы продолжать передачу и показывать системную Live Activity, но это делается по принципу "по возможности": система может завершить процесс при нехватке памяти, и передача с низким прогрессом с большей вероятностью будет прервана, чем почти завершённая. Для передачи, которую вы не хотите прерывать, держите CrocApp на переднем плане до её завершения. Если передача всё же прервётся, собственный механизм возобновления croc означает, что повторный запуск той же передачи продолжится с места остановки, а не начнётся заново.
Запрос разрешения на доступ к локальной сети
При первом использовании локальной сети iOS показывает системный запрос с просьбой разрешить CrocApp находить устройства в вашей локальной сети. Если вы отклоните его, или разрешение "зависнет" (известная особенность iOS, когда выданное разрешение фактически не работает, пока его не переключить или не перезагрузить устройство), CrocApp переключается только на релей. Если вы видите баннер "Local network access is off — transfers use the relay only", используйте его кнопку Open Settings, чтобы проверить Settings › Privacy › Local Network.
Полученные файлы не видны там, где ожидалось
- На iOS полученные файлы попадают в папку Documents приложения, которая по умолчанию видна в приложении Files.
- Если папка назначения для приёма была выбрана через облачного провайдера хранения (а не через локальное расположение), кнопка Open in Files после приёма может открыть её некорректно — это известное ограничение. В этом случае перейдите в папку вручную через приложение Files.
Релей недоступен
CrocApp по умолчанию использует публичный релей croc. Если он недоступен из вашей сети, вы можете вместо этого настроить собственный релей, который вы контролируете, либо включить Local network only, если оба устройства находятся в одной сети и релей вам вообще не нужен.
Автоприём и отправители с флагом --ask
Если у вас включён автоприём, а отправитель использует флаг подтверждения croc --ask, передача может быть автоматически отклонена, и сообщение CrocApp в этом случае ошибочно указывает на другую сторону ("the other side declined"), вместо того чтобы объяснить, что причина в вашей собственной настройке автоприёма. Это известная проблема, пока без исправления; отключение автоприёма её обходит.
Нет кнопки отмены при просмотре входящей передачи
Пока вы просматриваете список входящих файлов, Decline — единственный способ выйти: отдельной кнопки отмены на этом этапе нет, а уведомление о завершении передачи может немного запаздывать, пока croc внутри завершает попытки переподключения. Это ожидаемое поведение, а не ошибка.