AppDeployX is a fast and lightweight macOS utility that helps iOS developers quickly install .app bundles onto real iOS devices via USB.
It provides a clean graphical interface on top of ios-deploy, offering one-click deployment, real-time logs, device detection, and a recent-apps panel to streamline your development workflow.
- Lists all connected physical iOS devices via
ios-deploy -c - Displays device name, OS version, and UDID
- Manual refresh button
- Clear highlighting for the selected device
- Drop an
.appdirectly into the App Bundle area - Instantly shows:
- App icon
- App name
- Full file path
- “Open Build Folder” button opens Xcode DerivedData to quickly locate build outputs
- Tail-style live log output
- Auto-scrolls to the bottom
- Background log buffering for smooth UI performance
- Clear log button
- Log auto-trimming to prevent memory overload
- Press Cancel Install to interrupt the
ios-deployprocess - Uses
Process.terminate()for safe cancellation - UI stays fully responsive
- Automatically remembers the last five
.appbundles you used - One-click to reselect any recent app
- Automatically restores the most recent
.appon next launch
| Component | Requirement |
|---|---|
| macOS | 12.0 or later |
| Xcode | Required for building .app bundles |
| Homebrew | Required for installing ios-deploy |
| Devices | Physical iPhone / iPad connected via USB |
AppDeployX relies on the ios-deploy CLI tool.
Install via Homebrew:
brew install ios-deployAppDeployX automatically searches for ios-deploy at:
/opt/homebrew/bin/ios-deploy(Apple Silicon)/usr/local/bin/ios-deploy(Intel)
If not found, a helpful message appears in the log panel.
- Launch AppDeployX — connected devices will appear automatically
- Drag an
.appbundle into the App Bundle drop zone - Press Install to Selected Device
- View installation progress in the live log panel
- Press Cancel Install to stop the process
- Use Recent Apps to quickly switch between previously used bundles
- Press Open Build Folder to open Xcode DerivedData
Sources/
├─ AppState.swift // Core logic, ios-deploy management, log system, recent app list
├─ ContentView.swift // Main SwiftUI layout
├─ DeviceRow.swift // Device list row UI
├─ AppDeployXApp.swift // App entrypoint
Assets.xcassets/
└─ AppIcon.appiconset/ // macOS app icon
- SwiftUI
- Process + Pipe
- Background log buffering
- ScrollViewReader auto-scroll
- NSWorkspace for file icons and Finder integration
- UserDefaults for persistence
Special thanks to the open-source project that made AppDeployX possible:
https://github.com/ios-control/ios-deploy
AppDeployX relies on ios-deploy for device detection and .app installation.
Huge thanks to the maintainers and contributors of the project for their continuous work and support to the iOS developer community.
AppDeployX must run without sandbox restrictions because it needs to:
- Execute external tools (
ios-deploy) - Access
.appbundles from disk - Access system paths
- Read app icons
This is a developer tool for internal use.
AppDeployX is provided under the MIT license. See LICENSE file for details.
AppDeployX 是一款專為 iOS 開發者打造的 macOS 工具,
可快速將 .app 檔安裝到 USB 連接的 iOS 裝置上。
透過簡潔的 GUI 包裝 ios-deploy,提供一鍵部署、即時 log、裝置偵測,以及最近使用的 App 快速切換。
- 使用
ios-deploy -c列出所有 USB 連結的實體裝置 - 顯示裝置名稱、OS 版本、UDID
- 支援手動刷新
- 清楚標示目前選取的裝置
- 將
.app直接拖到 App Bundle 區域即可 - 自動顯示:
- App Icon
- App 名稱
- 完整路徑
- 內建「開啟 Build 資料夾」按鈕,用來快速開啟 Xcode DerivedData
- Log 自動捲到底
- 背景佇列進行 log 緩衝,UI 不會卡頓
- 可按「Clear」清除
- Log 過長會自動裁切,以維持效能
- 按下 Cancel Install 即可中止安裝流程
- 使用
Process.terminate()安全終止 - UI 保持可操作
- 自動記錄最近 5 個拖曳過的
.app - 可一鍵切換回之前的版本
- App 重啟後會自動載入上次使用的
.app
| 項目 | 需求 |
|---|---|
| macOS | 12.0 以上 |
| Xcode | 用於編譯 iOS App |
| Homebrew | 用來安裝 ios-deploy |
| iOS 裝置 | USB 連接並信任此電腦 |
AppDeployX 需要 ios-deploy。
使用 Homebrew 安裝:
brew install ios-deployAppDeployX 會自動搜尋以下路徑:
/opt/homebrew/bin/ios-deploy(Apple Silicon)/usr/local/bin/ios-deploy(Intel)
若找不到,會在 Log 區域顯示提示訊息。
- 啟動 AppDeployX,會自動顯示所有已連接裝置
- 將
.app檔拖曳到 App Bundle 區塊 - 按下 Install to Selected Device 開始安裝
- 可在 Log 區域查看即時輸出
- 若需要可按下 Cancel Install 中止安裝
- 可使用「最近 5 個 App」列表快速切換版本
- 可使用「開啟 Build 資料夾」快速進入 DerivedData
Sources/
├─ AppState.swift // 核心邏輯、ios-deploy 呼叫、log 系統、最近 App 紀錄
├─ ContentView.swift // 主要 UI
├─ DeviceRow.swift // 裝置列表 UI
├─ AppDeployXApp.swift // App 進入點
Assets.xcassets/
└─ AppIcon.appiconset/ // macOS App Icon
- SwiftUI
- Process + Pipe 外部指令處理
- 背景 log 緩衝
- ScrollViewReader 自動捲到底
- NSWorkspace 取得檔案 icon、開啟 Finder
- UserDefaults 儲存最近使用的 App
特別感謝以下開源專案:
https://github.com/ios-control/ios-deploy
AppDeployX 使用其 CLI 進行裝置偵測與 app 安裝,是本工具得以實現的核心基礎。
感謝所有貢獻者的持續維護與付出。
AppDeployX 必須關閉 Sandbox 才能:
- 執行外部工具(ios-deploy)
- 存取外部
.app檔案 - 讀取 App Icon
- 存取系統路徑
此工具屬於開發者內部工具,不符合沙盒限制。
AppDeployX 使用 MIT License,詳情見 LICENSE。