From b956e5189b66a7fabe9a76832798e88660245e59 Mon Sep 17 00:00:00 2001 From: Millian Lamiaux Date: Sat, 4 Jul 2026 18:50:12 +0200 Subject: [PATCH] fix(ci): eliminate pipeline bug preventing ios-deploy fallback When devicectl fails under bash -e -o pipefail, the pipeline (xcrun devicectl ... | tail -3) exits non-zero and -e kills the script before the if-check. The ios-deploy USB fallback was dead code. Fix: redirect to temp file, capture exit code explicitly. No pipeline = pipefail has no side-channel effect. --- .github/workflows/pr-iphone-deploy.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr-iphone-deploy.yml b/.github/workflows/pr-iphone-deploy.yml index 4fbb346..61531e1 100644 --- a/.github/workflows/pr-iphone-deploy.yml +++ b/.github/workflows/pr-iphone-deploy.yml @@ -106,8 +106,10 @@ jobs: # 1. Try WiFi first (Xcode 15+ devicectl network discovery) echo "📱 Trying WiFi install via devicectl..." - xcrun devicectl device install app --device "$UDID" "$APP" 2>&1 | tail -3 - if [ ${PIPESTATUS[0]} -eq 0 ]; then + xcrun devicectl device install app --device "$UDID" "$APP" > /tmp/devicectl.log 2>&1 + DEVICECTL_EXIT=$? + tail -10 /tmp/devicectl.log + if [ $DEVICECTL_EXIT -eq 0 ]; then echo "✅ Installed via WiFi" exit 0 fi