diff --git a/.github/workflows/build-ios-sim.yml b/.github/workflows/build-ios-sim.yml index 959ddee6..ea60e50b 100644 --- a/.github/workflows/build-ios-sim.yml +++ b/.github/workflows/build-ios-sim.yml @@ -75,6 +75,24 @@ jobs: fi pod --version + - name: Install Rust + iOS targets (if missing) + run: | + if ! command -v rustup >/dev/null; then + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable --no-modify-path + echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" + export PATH="$HOME/.cargo/bin:$PATH" + fi + # Clean any partial downloads from a previously crashed install — those + # are the source of the 'could not rename .partial → final: No such + # file or directory' race that breaks parallel pod builds. + rm -rf "$HOME/.rustup/downloads"/*.partial 2>/dev/null || true + # Pre-install iOS targets serially so the pod build doesn't try to + # do it under concurrency. + rustup target add aarch64-apple-ios + rustup target add aarch64-apple-ios-sim + rustup target add x86_64-apple-ios + rustup show + - name: Install Go + gomobile (if missing) run: | if ! command -v go >/dev/null; then diff --git a/.github/workflows/build-ios-testflight.yml b/.github/workflows/build-ios-testflight.yml index 81431621..f7be36a5 100644 --- a/.github/workflows/build-ios-testflight.yml +++ b/.github/workflows/build-ios-testflight.yml @@ -79,6 +79,19 @@ jobs: fi pod --version + - name: Install Rust + iOS targets (if missing) + run: | + if ! command -v rustup >/dev/null; then + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable --no-modify-path + echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" + export PATH="$HOME/.cargo/bin:$PATH" + fi + rm -rf "$HOME/.rustup/downloads"/*.partial 2>/dev/null || true + rustup target add aarch64-apple-ios + rustup target add aarch64-apple-ios-sim + rustup target add x86_64-apple-ios + rustup show + - name: Install Go + gomobile (if missing) run: | if ! command -v go >/dev/null; then