
Лучшее приложение для macOS, позволяющее видеть каждый пакет сети на вашем Mac. Альтернатива Wireshark.
TCP Viewer — это просмотрщик пакетов для macOS для захвата в реальном времени и файлов захвата. Он использует AppKit для основного приложения, системную библиотеку libpcap для захвата и поставляемые библиотеки Wireshark для детального анализа пакетов.
brew install cmake ninja meson pkg-config autoconf automake libtool
Клонируйте с подмодулями и загрузите фиксированную зависимость Wireshark:
git clone --recurse-submodules <repo-url>
cd TCPViewer
cp Config/TCPViewer.local.xcconfig.example Config/TCPViewer.local.xcconfig
./scripts/bootstrap-wireshark.sh
Если вы уже клонировали без подмодулей:
git submodule update --init --recursive
./scripts/bootstrap-wireshark.sh
scripts/bootstrap-wireshark.sh сначала запускает
scripts/bootstrap-wireshark-deps.sh, который собирает поставляемые
библиотеки времени выполнения Wireshark из исходного кода в
Vendor/.install/wireshark-deps с macOS 15.0 в качестве
целевой платформы развертывания. Homebrew используется только для
инструментов сборки; релизные сборки не должны копировать динамические
библиотеки Homebrew bottle из /opt/homebrew или /usr/local.
Храните локальные значения подписи, appcast, Sparkle, Sentry и релиза вне Git.
Используйте игнорируемые локальные файлы, такие как Config/TCPViewer.local.xcconfig,
.env, переменные окружения оболочки или инструменты на основе связки ключей.
В Xcode:
TCPViewer.xcodeproj.TCPViewer.My Mac.Сборка из командной строки:
xcodebuild -project TCPViewer.xcodeproj -scheme TCPViewer build
Если Xcode запрашивает подпись, выберите команду разработчика для TCPViewer и PcapPlusPlusCore.
xcodebuild test \
-project TCPViewer.xcodeproj \
-scheme TCPViewer \
-destination 'platform=macOS'
Релизы TCP Viewer создаются, нотариально заверяются, подписываются для Sparkle, загружаются на Cloudflare R2 и при необходимости публикуются в бэкенд релизов с помощью скрипта релиза.
Первоначальная настройка релиза:
npm install
bundle install
gh auth login
Создайте локальный .env из .env.example и заполните необходимые значения для релиза.
Никогда не коммитьте реальные секреты. Оставляйте комментарии в .env как комментарии
#, потому что sentry-cli не принимает комментарии // при загрузке файла.
Для производственных релизов добавьте соответствующую запись в ReleaseNote.json, затем выполните:
npm run release
Выберите beta или production при появлении запроса. Производственные релизы также создают appcast Sparkle, отправляют тег v<version> и публикуют релиз на GitHub. Артефакты записываются в:
~/Desktop/tcpviewer-production/
TCP Viewer лицензирован под GPL-2.0-or-later. Это соответствует интеграции
с Wireshark в приложении: libwireshark, libwiretap и libwsutil — это
библиотеки Wireshark, покрытые GPL.
Полный текст GPL находится в COPYING, уведомления третьих сторон — в
THIRD_PARTY_NOTICES.md, а условия доступности исходного кода для бинарных
релизов — в SOURCE_CODE_OFFER.md.
TCP Viewer использует Wireshark для разбора пакетов и HexFiend для
встроенного шестнадцатеричного просмотрщика. Подробности см. в
THIRD_PARTY_NOTICES.md.