Fix: Improve iOS app file search with multiple fallback methods and verbose output

This commit is contained in:
2026-07-02 11:39:28 +08:00
parent 73a95e2c7a
commit 7ba0cec04f
+51 -7
View File
@@ -121,17 +121,61 @@ jobs:
- name: Find and upload iOS Debug App
run: |
cd iOS-SwiftUI-Code
# 查找生成的 .app 文件
APP_PATH=$(find ~/Library/Developer/Xcode/DerivedData -name "*.app" -type d | head -n 1)
if [ -n "$APP_PATH" ]; then
echo "Found app at: $APP_PATH"
# 显示 DerivedData 目录结构
echo "Searching for .app files in DerivedData..."
find ~/Library/Developer/Xcode/DerivedData -name "*.app" -type d
# 显示 Build 目录结构
echo "Searching for .app files in Build directory..."
find ./build -name "*.app" -type d || echo "No build directory found"
# 尝试多个可能的路径
APP_PATH=""
# 方法1: 从 DerivedData 查找
APP_PATH=$(find ~/Library/Developer/Xcode/DerivedData -name "SFI.app" -type d | head -n 1)
# 方法2: 如果没找到,查找任何 .app 文件
if [ -z "$APP_PATH" ]; then
APP_PATH=$(find ~/Library/Developer/Xcode/DerivedData -name "*.app" -type d | head -n 1)
fi
# 方法3: 从 Build 目录查找
if [ -z "$APP_PATH" ]; then
APP_PATH=$(find ./build -name "*.app" -type d | head -n 1)
fi
# 方法4: 使用 xcodebuild 显示构建产物路径
if [ -z "$APP_PATH" ]; then
echo "Getting build settings to find target build dir..."
BUILD_DIR=$(xcodebuild -project uuvpn.xcodeproj -scheme SFI -showBuildSettings | grep "TARGET_BUILD_DIR" | cut -d '=' -f 2 | tr -d ' ')
echo "TARGET_BUILD_DIR: $BUILD_DIR"
if [ -n "$BUILD_DIR" ] && [ -d "$BUILD_DIR" ]; then
APP_PATH=$(find "$BUILD_DIR" -name "*.app" -type d | head -n 1)
fi
fi
if [ -n "$APP_PATH" ] && [ -d "$APP_PATH" ]; then
echo "✅ Found app at: $APP_PATH"
echo "App size:"
du -sh "$APP_PATH"
# 复制到 build 目录
mkdir -p build
cp -R "$APP_PATH" build/
# 创建 zip 文件以便上传
# 创建 zip 文件
cd build
zip -r ios-debug-app.zip *.app
APP_NAME=$(basename "$APP_PATH")
zip -r ios-debug-app.zip "$APP_NAME"
echo "✅ Created zip file: ios-debug-app.zip"
ls -lh ios-debug-app.zip
else
echo "No .app file found"
echo "No .app file found in any location"
echo "Listing all files in DerivedData..."
ls -R ~/Library/Developer/Xcode/DerivedData/uuvpn*/Build/Products/ || true
exit 1
fi