Update Xcode setup in iOS deployment workflow#516
Conversation
WalkthroughReplace manual Xcode selection with maxim-lobanov/setup-xcode@v1 (xcode-version: 16.4); move iOS platform download earlier and into the Release run step; add Changes
Sequence Diagram(s)sequenceDiagram
autonumber
participant GH as GitHub Actions
participant SetupXcode as setup-xcode (maxim-lobanov/setup-xcode@v1)
participant PreDownload as xcodebuild -downloadPlatform iOS
participant Perms as chmod +x usymtool / other chmods
participant SSH as ssh-agent / add-keys
participant Bundler as bundle install
participant Fastlane as fastlane (release)
GH->>SetupXcode: install Xcode (16.4)
GH->>PreDownload: pre-download iOS platform
GH->>Perms: chmod +x usymtool and other scripts
GH->>SSH: start ssh-agent and add keys
GH->>Bundler: run bundle install
GH->>Fastlane: run fastlane release (Release run block also ensures iOS platform downloaded)
note right of Fastlane #DDEEFF: Release path includes\nxcodebuild -downloadPlatform iOS inside run block
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Visit the preview URL for this PR (updated for commit 9b94053): https://game-ci-5559f--pr516-davidmfinol-patch-4-99bzz199.web.app (expires Wed, 22 Oct 2025 23:19:47 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 Sign: 1f0574f15f83e11bfc148eae8646486a6d0e078b |
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (1)
docs/03-github/06-deployment/ios.mdx (1)
485-485: Add safe shell options so the step fails fast if the download fails.
xcodebuild -downloadPlatform iOSis the right workaround for the “iOS XX is not installed” error seen on macOS 15 images; addset -euo pipefailat the top of this run block to avoid continuing after a partial/failed download. (github.com, developer.apple.com)run: | + set -euo pipefail xcodebuild -downloadPlatform iOS
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
docs/03-github/06-deployment/ios.mdx(2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: build_and_preview
🔇 Additional comments (1)
docs/03-github/06-deployment/ios.mdx (1)
463-466: Good switch to setup-xcode; consider clarifying pinning strategy.Pinning Xcode 16.4 is appropriate given current macos-latest defaults and the macOS 15 image state. To help readers adapt when runner images change, add a brief inline comment about why it’s pinned and that
latest-stableis an alternative. (github.com)Apply this inline doc tweak:
- name: Select Xcode uses: maxim-lobanov/setup-xcode@v1 with: + # Pin to a known-good version due to recent runner image changes; update as needed. + # Alternatively, use 'latest-stable' if you prefer auto-tracking. xcode-version: '16.4'
There was a problem hiding this comment.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
docs/03-github/06-deployment/ios.mdx (1)
443-446: Artifact mismatch: v4 upload vs v3 download will fail.You upload with actions/upload-artifact@v4 but download with @V3. These majors are not compatible.
Apply:
- - name: Download iOS Artifact - uses: actions/download-artifact@v3 + - name: Download iOS Artifact + uses: actions/download-artifact@v4Also applies to: 457-461
🧹 Nitpick comments (2)
docs/03-github/06-deployment/ios.mdx (2)
463-466: Good move to setup-xcode; avoid fragile hard-pin.Pinning to '16.4' can break as runner images rotate. Consider using 'latest-stable' or a repo/env variable to control the version without editing docs.
Example:
- with: - xcode-version: '16.4' + with: + xcode-version: 'latest-stable'
467-492: Add ruby/setup-ruby and enable bundler cache; harden shell.Ensure a consistent Ruby/Bundler and faster runs; also fail fast on errors.
Insert before the "Fix File Permissions and Run fastlane" step:
+ - name: Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: '3.2' + bundler-cache: trueAnd harden the run block:
- run: | + run: | + set -euo pipefail xcodebuild -downloadPlatform iOS eval "$(ssh-agent -s)" ssh-add - <<< "${MATCH_DEPLOY_KEY}" find $IOS_BUILD_PATH -type f -name "**.sh" -exec chmod +x {} \; find $IOS_BUILD_PATH -type f -iname "usymtool*" -exec chmod +x {} \; - bundle install bundle exec fastlane ios releaseNote: With ruby/setup-ruby bundler-cache, a separate
bundle installis unnecessary here.

Changes
Checklist
code of conduct
Summary by CodeRabbit