Ловушки: список граблей
troubleshoot-ios · обновлён 2026-07-29T16:37:20.258Z
Каждая строка здесь стоила нам от часа до суток.
ОБОЛОЧКА И ПРОЦЕССЫ
· «команда | head» или «| tail» возвращает код ХВОСТА, а не команды. Скрипт печатал OK на
полностью провалившейся сборке. Судить об успехе только по СОДЕРЖИМОМУ вывода.
· «set -e» вместе с «OUT=$(команда)» при ненулевом коде рвёт скрипт молча, без единой строки.
· PATH под ssh/tmux/nohup почти пуст — профиль не читается. Команда «не найдена», сессия умирает
мгновенно и без следа. Экспортируй PATH в самом скрипте и ВСЕГДА проверяй «tmux list-sessions»
после запуска: «команда выполнилась» ничего не доказывает.
· «pgrep -f <имя>» ловит твой собственный цикл ожидания. Используй «pgrep -x».
ПАТЧИ
Не лёг — сперва «git apply --3way», затем «--reject» и вставка руками по якорной строке.
Отклонённый кусок надо ДОСТАВИТЬ, а не пропустить: половинчатый фикс выглядит как рабочий.
iOS-СПЕЦИФИКА
· Разбор markdown в «AttributedString» внутри тела представления SwiftUI пересчитывается на
каждое изменение тела. На длинных ответах это кладёт главный поток. Кэшировать.
· Правка одной ячейки таблицы гнала ВСЮ заметку через проверку целостности — 300×300 стоило
почти две секунды на нажатие. Проверять инкрементально.
· Таблица приезжает как один raw-HTML остров (длина атрибутованной строки = 1) — текстовый слой
её не рисует, на экране серая плашка. Отрисовку делать лениво и с подписью «показаны R1—R20 из N».
СЕРВЕР
· «catch», отдающий пустой результат вместо ошибки, прячет причину месяцами.
· Просить у базы колонку, которой нет в схеме, — ошибка валидации на РАНТАЙМЕ, не на сборке.