iCode — расширение для VS Code и Cursor, которое превращает ваш редактор в полноценную среду разработки iOS приложений. Собирайте, запускайте и отлаживайте iOS проекты без необходимости переключаться в Xcode.
- 🎯 Выбор схемы и таргета — быстрое переключение между схемами проекта
- 📱 Поддержка симуляторов и устройств — запуск на любом доступном iOS симуляторе или подключённом устройстве
- ⚙️ Конфигурации сборки — поддержка Debug, Release и кастомных конфигураций
- 🔨 Сборка проекта — интеграция с
xcodebuildи красивый вывод черезxcbeautify ▶️ Запуск приложения — автоматическая установка и запуск с подключением к консоли- 🐛 Отладка — интеграция с LLDB через CodeLLDB с поддержкой Swift типов
- 🔍 Swift индексация — интеграция с SourceKit-LSP через
xcode-build-server - 📊 Status Bar — удобные элементы управления прямо в статус-баре
- macOS (обязательно)
- Xcode 15+ с установленными Command Line Tools
- VS Code 1.85+ или Cursor
- Node.js 18+ (для разработки)
# Красивый вывод сборки (рекомендуется)
brew install xcbeautify
# Swift индексация (для автодополнения)
brew install xcode-build-server- CodeLLDB — для отладки iOS приложений:
- VS Code: CodeLLDB
- Cursor: CodeLLDB (Open VSX)
- Swift — поддержка языка Swift:
- VS Code: Swift (swiftlang)
- Cursor: официальное расширение обновляется с задержкой, рекомендуется swift-vscode (chrisatwindsurf) — сравните версии и выберите актуальную
- Скачайте файл
icode-1.0.0.vsix - Откройте VS Code / Cursor
- Нажмите
Cmd+Shift+P→ введите "Install from VSIX" - Выберите скачанный файл
# Клонируйте репозиторий
git clone https://github.com/nsleader/icode.git
cd icode
# Установите зависимости
npm install
# Соберите и упакуйте
npm run compile
npm run package
# Установите расширение
code --install-extension icode-1.0.0.vsix- Откройте iOS проект в VS Code / Cursor
- Расширение активируется автоматически при обнаружении
.xcodeprojили.xcworkspace - В статус-баре появятся элементы управления:
[📄 Select Scheme] [📱 Select Target] [🐛 Debug] [🔨 Build] [▶️ Run]
Нажмите на 📄 Select Scheme в статус-баре или выполните команду:
Cmd+Shift+P → iCode: Select Scheme
Выберите проект (если их несколько) и схему из списка.
После выбора схемы автоматически откроется список доступных симуляторов и устройств:
📱 Simulators
├── iPhone 16 Pro (iOS 26.2)
├── iPhone 15 (iOS 26.1)
└── iPad Pro (iOS 18.2)
📲 Devices
└── Ivan's iPhone (iOS 26.1)
Выберите конфигурацию сборки (Debug, Release или кастомную):
🐛 Debug — для разработки и отладки
📦 Release — для тестирования и публикации
- Build (
Cmd+Shift+P → iCode: Build Project) — только сборка - Run (
Cmd+Shift+P → iCode: Build & Run) — сборка + запуск
При запуске:
- Проект собирается с выбранной конфигурацией
- Симулятор запускается автоматически
- Приложение устанавливается и запускается
- Консольный вывод отображается в терминале
💡 Совет: Закройте терминал, чтобы остановить приложение.
Для работы автодополнения и навигации по коду:
Cmd+Shift+P → iCode: Configure Swift Index (SourceKit-LSP)
Команда создаст файл buildServer.json в корне проекта для интеграции с SourceKit-LSP. Не забудьте добавить его в .gitignore
⚠️ Важно: После настройки индексации необходимо собрать проект, чтобыxcode-build-serverполучил информацию о структуре проекта.
| Команда | Описание |
|---|---|
iCode: Select Scheme |
Выбор проекта и схемы |
iCode: Select Simulator/Device |
Выбор симулятора или устройства |
iCode: Select Configuration |
Выбор конфигурации (Debug/Release) |
iCode: Build Project |
Сборка проекта |
iCode: Build & Run |
Сборка и запуск приложения |
iCode: Configure Swift Index |
Настройка индексации для SourceKit-LSP |
iCode: Resolve SPM Dependencies |
Предварительный резолв SPM-зависимостей |
iCode: Configure Debug (LLDB) |
Настройка отладки через CodeLLDB |
Настройки доступны в Settings → Extensions → iCode:
| Настройка | По умолчанию | Описание |
|---|---|---|
icode.build.skipMacroValidation |
true |
Пропуск валидации Swift макросов (Xcode 15+) |
icode.build.parallelizeTargets |
true |
Параллельная сборка независимых таргетов |
icode.build.disableAutoPackageResolution |
false |
Отключить автоматический резолв SPM-зависимостей |
💡 Совет по SPM: Если сборка долго резолвит зависимости, выполните команду
iCode: Resolve SPM Dependenciesодин раз, затем включитеdisableAutoPackageResolution. Это значительно ускорит повторные сборки.
Для настройки отладки выполните:
Cmd+Shift+P → iCode: Configure Debug (LLDB)
Команда создаст:
.vscode/launch.json— конфигурации отладки.vscode/settings.json— путь к LLDB из Xcode (для поддержки Swift типов)
Workflow отладки:
iCode: Build & Run— запустить приложениеF5→ выбратьDebug <Scheme> (Wait for Process)или(Attach)- LLDB подключится к процессу
💡 При смене схемы
launch.jsonобновляется автоматически.
Требование: Установите расширение CodeLLDB (см. Рекомендуемые расширения) — оно используется как debug adapter.
Расширение автоматически активируется при открытии папки, содержащей:
*.xcodeproj/project.pbxproj*.xcworkspace/contents.xcworkspacedata
Выбранные схема, таргет и конфигурация сохраняются между сессиями для каждого workspace.
Если xcbeautify установлен, вывод сборки автоматически форматируется. При отсутствии расширение предложит установить его.
- iOS Simulator — полная поддержка (сборка, установка, запуск с консолью)
- iOS Device — полная поддержка через
xcrun devicectl(Xcode 15+)
Проблема: Элементы в статус-баре не появляются.
Решение:
- Убедитесь, что открыта папка с iOS проектом
- Проверьте, что в папке есть
.xcodeprojили.xcworkspace - Перезагрузите окно:
Cmd+Shift+P → Reload Window
Проблема: При выборе схемы список пуст.
Решение:
# Проверьте, что xcodebuild работает
xcodebuild -list -project YourProject.xcodeproj
# Если ошибка, попробуйте открыть проект в Xcode
# и дождитесь завершения индексацииРешение:
# Установите Command Line Tools
xcode-select --install
# Или укажите путь к Xcode
sudo xcode-select -s /Applications/Xcode.app/Contents/DeveloperПроблема: Сборка успешна, но приложение не запускается.
Решение:
- Проверьте, что симулятор не завис:
xcrun simctl shutdown all xcrun simctl erase all # Осторожно: удалит все данные симуляторов - Попробуйте другой симулятор
Проблема: Нет автодополнения и навигации по коду.
Решение:
- Установите
xcode-build-server:brew install xcode-build-server
- Выполните
iCode: Configure Swift Index - Соберите проект (
iCode: Build Project) - Перезагрузите окно (
Cmd+Shift+P → Reload Window)
Проблема: SourceKit-LSP не может найти стандартную библиотеку.
Решение:
- Соберите проект через Xcode хотя бы один раз
- Убедитесь, что выбрана правильная версия Xcode:
xcode-select -p # Должно показать /Applications/Xcode.app/Contents/Developer
Проблема: Устройство не отображается в списке.
Решение:
- Убедитесь, что устройство разблокировано и доверяет компьютеру
- Проверьте подключение:
xcrun devicectl list devices
- Для первого запуска может потребоваться открыть Xcode и подтвердить сертификат разработчика
icode/
├── src/
│ ├── commands/ # Команды расширения
│ │ ├── selectScheme.ts
│ │ ├── selectSimulator.ts
│ │ ├── selectConfiguration.ts
│ │ ├── build.ts
│ │ ├── run.ts
│ │ ├── configureIndex.ts
│ │ ├── resolvePackages.ts
│ │ └── configureDebug.ts
│ ├── state/
│ │ └── projectState.ts # Управление состоянием
│ ├── utils/
│ │ ├── xcode.ts # Утилиты для xcodebuild
│ │ ├── simulator.ts # Работа с симуляторами
│ │ └── exec.ts # Выполнение команд
│ ├── statusBar.ts # Элементы статус-бара
│ └── extension.ts # Точка входа
├── out/ # Скомпилированный JS
├── package.json
├── tsconfig.json
└── README.md
- GitHub Issues: github.com/nsleader/icode/issues
При создании issue, пожалуйста, укажите:
- Версию macOS и Xcode
- Версию VS Code / Cursor
- Шаги для воспроизведения проблемы
- Логи из Output → iCode (если есть)
MIT License
Copyright (c) 2026 nsleader
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
- xcbeautify — форматирование вывода xcodebuild
- xcode-build-server — интеграция с SourceKit-LSP
- VS Code Extension API — документация по созданию расширений
Made with ❤️ for iOS developers who prefer VS Code / Cursor