From 6a659c41fa96e73710ec5498455f009d4acad336 Mon Sep 17 00:00:00 2001 From: millianlmx Date: Fri, 26 Jun 2026 21:25:51 +0000 Subject: [PATCH] docs: add ios-deploy, system_profiler UDID, Bonjour/VPN notes to CI/CD setup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add ios-deploy install step (brew install ios-deploy) - Add system_profiler SPUSBDataType method for finding iPhone UDID - Add note about Bonjour/mDNS not working over VPN — use UDID-based connection - Add ios-deploy troubleshooting entry for VPN/Bonjour issues --- docs/ci-cd-setup.md | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/docs/ci-cd-setup.md b/docs/ci-cd-setup.md index 8a3c21c..bde8dac 100644 --- a/docs/ci-cd-setup.md +++ b/docs/ci-cd-setup.md @@ -12,7 +12,8 @@ This guide covers setting up a **Gitea Actions** macOS runner to automatically b ### Software - [Gitea Actions Runner](https://docs.gitea.com/usage/actions/act-runner) installed and registered - `brew` (Homebrew) installed -- `xcodegen` (installed automatically by the workflow) +- `xcodegen` — `brew install xcodegen` (also installed automatically by the workflow) +- `ios-deploy` — `brew install ios-deploy` (also installed automatically by the workflow) - `libimobiledevice` + `ideviceinstaller` (installed automatically by the workflow) ## 1. Register the macOS Runner @@ -39,10 +40,19 @@ This guide covers setting up a **Gitea Actions** macOS runner to automatically b `Settings → Privacy & Security → Developer Mode` 4. Get the device UDID: ```bash - # Via Xcode: Window → Devices and Simulators, or: + # Method 1: Via libimobiledevice (preferred) idevice_id -l + + # Method 2: Via system_profiler (no extra tools needed) + system_profiler SPUSBDataType | grep -A 20 "iPhone" | grep "Serial Number" + # The UDID is the 40-character hex string (not the ECID) + + # Method 3: Via Xcode + # Window → Devices and Simulators ``` +> **Important:** Bonjour/mDNS discovery does **not** work over VPN connections. Always use the USB-based UDID connection (`--id` flag with `ios-deploy`) rather than relying on network Bonjour discovery. The workflow uses `--id ${IPHONE_UDID}` which works over both direct USB and USB-over-network setups. + ## 3. Configure Secrets Add these secrets in the Gitea repository: @@ -123,5 +133,6 @@ xcodebuild build \ | "No provisioning profile" | Run `-allowProvisioningUpdates` or open project in Xcode once | | `xcodegen: command not found` | `brew install xcodegen` (workflow handles this) | | `ideviceinstaller` fails | Ensure iPhone is unlocked and trusted; try Xcode Organizer manually | +| `ios-deploy` fails to find device | Use `--id` with explicit UDID. Bonjour discovery fails over VPN — always use UDID-based connection | | Runner doesn't pick up job | Verify runner label is `macos` and runner is connected | | Token permission errors | Ensure `GITEA_TOKEN` has `write:issue` and `write:pull_request` scopes |