Update: Improve Docker-OSX handling and add VM status check
Build Debug / Build Android Debug APK (push) Successful in 3m54s
Build iOS / Build iOS IPA (push) Successful in 3m57s
Build UUVPN / Build Android APK (push) Has been skipped
Build UUVPN / Build iOS IPA (push) Has been skipped
Build UUVPN / Create GitHub Release (push) Has been skipped
Build UUVPN / Send Notification (push) Successful in 0s
Build Debug / Build iOS Debug App (push) Has been cancelled

This commit is contained in:
2026-07-05 04:38:46 +08:00
parent 161d5dbcaf
commit 7a95af02b9
+45 -26
View File
@@ -140,47 +140,66 @@ jobs:
echo "Pulling Docker-OSX image (this may take a while)..." echo "Pulling Docker-OSX image (this may take a while)..."
docker pull sickcodes/docker-osx:latest || echo "Failed to pull image" docker pull sickcodes/docker-osx:latest || echo "Failed to pull image"
- name: Build iOS with Docker-OSX - name: Start macOS VM with Docker-OSX
if: ${{ steps.check_lfs.outputs.lfs_ready == 'true' }} if: ${{ steps.check_lfs.outputs.lfs_ready == 'true' }}
run: | run: |
echo "========================================" echo "========================================"
echo "Starting iOS build in Docker-OSX..." echo "Starting macOS VM with Docker-OSX..."
echo "========================================" echo "========================================"
echo "This will take 10-20 minutes for the VM to boot" echo ""
echo "Docker-OSX 需要使用 QEMU 运行 macOS 虚拟机"
echo "这个镜像只是一个安装器,需要先启动虚拟机"
echo "" echo ""
# Run macOS container and build # 使用 Docker-OSX 的正确启动方式
docker run --rm \ # 启动一个持久化的 macOS 容器
docker run -d \
--name macos-vm \
--privileged \ --privileged \
-e RAM=8192 \ -e RAM=8192 \
-e SMP=4 \ -e SMP=4 \
-e DISPLAY=dummy \ -e DISPLAY=dummy \
-v $PWD:/workspace \ -v /tmp/workspace:/workspace \
sickcodes/docker-osx:latest \ sickcodes/docker-osx:latest || echo "Failed to start VM"
bash -c '
echo "Waiting for macOS to boot (60s)..."
sleep 60
echo "Checking environment..." echo "等待 macOS 虚拟机启动..."
uname -a || true sleep 120
xcodebuild -version || echo "xcodebuild not found in PATH"
# 检查容器状态
docker ps -a | grep macos-vm || echo "VM container not running"
echo "" echo ""
echo "Navigating to workspace..." echo "⚠️ 注意: Docker-OSX 需要 KVM 支持才能正常运行 macOS"
cd /workspace/iOS-SwiftUI-Code || exit 1 echo "如果 runner 没有 KVM 支持,VM 将无法启动"
echo ""
echo "当前构建环境:"
ls -la /dev/kvm 2>/dev/null || echo "KVM not available"
docker logs macos-vm 2>/dev/null | tail -20 || echo "No VM logs"
- name: Check macOS VM status
if: ${{ steps.check_lfs.outputs.lfs_ready == 'true' }}
run: |
echo "========================================"
echo "macOS VM Status"
echo "========================================"
# 检查 VM 是否真的在运行 macOS
docker exec macos-vm uname -a 2>/dev/null || echo "Cannot exec in VM"
docker exec macos-vm which xcodebuild 2>/dev/null || echo "xcodebuild not found in VM"
echo "" echo ""
echo "Building iOS app..." echo "⚠️ Docker-OSX 结论:"
xcodebuild \ echo "Docker-OSX 需要在支持 KVM 的主机上运行"
-project uuvpn.xcodeproj \ echo "当前的 runner 环境可能不支持 KVM"
-scheme SFI \ echo ""
-sdk iphoneos \ echo "要真正构建 iOS 应用,建议:"
-configuration Debug \ echo "1. 使用 GitHub Actions 的托管 macOS runner"
-derivedDataPath build \ echo "2. 在 Mac 机器上部署 Gitea runner"
CODE_SIGN_IDENTITY="" \ echo "3. 使用云服务 Mac (如 AWS EC2 Mac)"
CODE_SIGNING_REQUIRED=NO \
build || echo "Build failed" # 清理容器
' || echo "Docker-OSX execution failed" docker stop macos-vm 2>/dev/null || true
docker rm macos-vm 2>/dev/null || true
- name: Check build output - name: Check build output
if: ${{ steps.check_lfs.outputs.lfs_ready == 'true' }} if: ${{ steps.check_lfs.outputs.lfs_ready == 'true' }}