Skip to content

Fix iOS deployment target for Iroh framework compatibility - #8220

Merged
azooz2003-bit merged 1 commit into
mainfrom
fix/ios-deployment-target
Jul 16, 2026
Merged

azooz2003-bit merged 1 commit into
mainfrom
fix/ios-deployment-target

Conversation

@azooz2003-bit

@azooz2003-bit azooz2003-bit commented Jul 16, 2026 •

Copy link
Copy Markdown
Collaborator

iOS app was set to 18.4 minimum but CmuxIrohTransport and Iroh framework require iOS 18.0. Lower deployment target to 18.0 to resolve ASC ITMS-90208 error during internal TestFlight upload.


View with Codesmith Autofix with Codesmith
Need help on this PR? Tag /codesmith with what you need. Autofix is disabled.


Summary by cubic

Lowered the iOS deployment target from 18.4 to 18.0 to match the Iroh framework and CmuxIrohTransport requirements, fixing App Store Connect error ITMS-90208. Updates IPHONEOS_DEPLOYMENT_TARGET in ios/Config/Shared.xcconfig to unblock TestFlight uploads.

Written for commit bf86c2e. Summary will update on new commits.

Review in cubic

Summary by CodeRabbit

  • Compatibility
    • Expanded iOS compatibility to support devices running iOS 18.0 and later.

iOS app was set to 18.4 minimum but CmuxIrohTransport and Iroh framework
require iOS 18.0. Lower deployment target to 18.0 to resolve ASC
ITMS-90208 error during internal TestFlight upload.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 16, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
cmux Building Building Preview, Comment Jul 16, 2026 2:54am
cmux-staging Building Building Preview, Comment Jul 16, 2026 2:54am

@coderabbitai

coderabbitai Bot commented Jul 16, 2026 •

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The shared iOS deployment target is lowered from 18.4 to 18.0.

Changes

iOS deployment target

Layer / File(s) Summary
Update shared deployment target
ios/Config/Shared.xcconfig
Sets IPHONEOS_DEPLOYMENT_TARGET to 18.0.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Suggested reviewers: lawrencecchen

🚥 Pre-merge checks | ✅ 24 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description covers the summary and why, but it omits the required Testing, Review Trigger, and Checklist sections. Add the Testing section, the Review Trigger code block, and the checklist items; include a demo link if applicable.
✅ Passed checks (24 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise and accurately summarizes the main change: lowering the iOS deployment target for Iroh compatibility.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Cmux Swift Actor Isolation ✅ Passed PR only changes iOS deployment-target config; no Swift sources were modified, so actor-isolation rules aren’t affected.
Cmux Swift Blocking Runtime ✅ Passed PR only changes ios/Config/Shared.xcconfig; no Swift files or new blocking sync patterns were introduced.
Cmux Browser Automation Off-Main ✅ Passed Only ios/Config/Shared.xcconfig changed; no browser automation commands, routing, or main-thread worker-lane code were touched.
Cmux Expensive Synchronous Load ✅ Passed PR only changes ios/Config/Shared.xcconfig; no Swift code or agent-history load path was added or moved onto main/interactive paths.
Cmux Cache Substitution Correctness ✅ Passed Only ios/Config/Shared.xcconfig changed; no Swift/TS/JS cache, persistence, history, undo, or snapshot code was touched.
Cmux No Hacky Sleeps ✅ Passed PR only changes ios/Config/Shared.xcconfig; no TS/JS/shell/runtime code or sleep-like delays are introduced, so the rule is out of scope.
Cmux Algorithmic Complexity ✅ Passed Diff only changes ios/Config/Shared.xcconfig deployment target; no production Swift/TS/JS/shell/runtime code or algorithmic path changed.
Cmux Swift Concurrency ✅ Passed Diff only changes ios/Config/Shared.xcconfig; no Swift files or concurrency patterns were introduced.
Cmux Swift @Concurrent ✅ Passed Diff only changes ios/Config/Shared.xcconfig; no Swift files or concurrency annotations are involved.
Cmux Swift Package Boundaries ✅ Passed This PR only changes ios/Config/Shared.xcconfig; no production Swift logic was added or expanded, so the package-boundary rule doesn’t apply.
Cmux Swiftpm Lockfiles ✅ Passed PR only changes ios/Config/Shared.xcconfig; no Package.swift, Package.resolved, .gitignore, workflow, or Xcode package-reference files changed.
Cmux Swift Logging ✅ Passed PR only changes ios/Config/Shared.xcconfig deployment target; no Swift/runtime logging was added or modified.
Cmux User-Facing Error Privacy ✅ Passed Only IPHONEOS_DEPLOYMENT_TARGET changed; no user-facing errors, alerts, or API copy were added or edited.
Cmux Full Internationalization ✅ Passed Only ios/Config/Shared.xcconfig changed, lowering a build config key; the i18n rule exempts literal config tokens and no user-facing text was added.
Cmux Swiftui State Layout ✅ Passed The commit only changes ios/Config/Shared.xcconfig deployment target; no SwiftUI state/layout code or related patterns are touched.
Cmux Architecture Rethink ✅ Passed Config-only deployment-target change; no Swift code or architectural pattern was introduced, so the rethink rule doesn’t apply.
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed PR only changes ios/Config/Shared.xcconfig; no Swift window/controller code changed, so the auxiliary-window shortcut rule is not implicated.
Cmux Source Artifacts ✅ Passed Only changed path is ios/Config/Shared.xcconfig, a hand-written config file; no logs, caches, temp dirs, or generated artifacts are in the diff.
Cmux No Test Or Debug Seam In Production Source ✅ Passed PR only changes ios/Config/Shared.xcconfig; no Swift files under production Sources/ were added or modified.
Cmux No Ambient Global State ✅ Passed Only ios/Config/Shared.xcconfig changed; no Swift production code or new global state surface was added.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/ios-deployment-target

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@azooz2003-bit
azooz2003-bit merged commit 856a186 into main Jul 16, 2026
6 of 9 checks passed

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@ios/Config/Shared.xcconfig`:
- Line 61: Update the Debug and Release project-level IPHONEOS_DEPLOYMENT_TARGET
settings in the Xcode project configurations to 18.0, or remove those overrides
so Shared.xcconfig remains authoritative and the effective deployment target is
18.0.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 239e380c-22b5-4d58-8439-0a0a36da1dca

📥 Commits

Reviewing files that changed from the base of the PR and between d730bbd and bf86c2e.

📒 Files selected for processing (1)
  • ios/Config/Shared.xcconfig

// Platform Configuration
// ==========================================
IPHONEOS_DEPLOYMENT_TARGET = 18.4
IPHONEOS_DEPLOYMENT_TARGET = 18.0

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Remove or update the stale project-level deployment-target overrides.

ios/cmux-ios.xcodeproj/project.pbxproj still sets IPHONEOS_DEPLOYMENT_TARGET = 18.4 for both Debug and Release, so those explicit settings can override this shared 18.0 value. The effective build target may therefore remain 18.4 and the TestFlight compatibility objective will not be achieved. Update both project configurations to 18.0, or remove the overrides so Shared.xcconfig is authoritative.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@ios/Config/Shared.xcconfig` at line 61, Update the Debug and Release
project-level IPHONEOS_DEPLOYMENT_TARGET settings in the Xcode project
configurations to 18.0, or remove those overrides so Shared.xcconfig remains
authoritative and the effective deployment target is 18.0.

@greptile-apps

greptile-apps Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR lowers IPHONEOS_DEPLOYMENT_TARGET from 18.4 to 18.0 in ios/Config/Shared.xcconfig to resolve an ITMS-90208 error blocking internal TestFlight uploads, caused by a mismatch between the app's minimum OS requirement and the Iroh / CmuxIrohTransport framework's stated minimum of iOS 18.0.

  • The xcconfig is included by both Debug.xcconfig and Release.xcconfig at the target level, so Xcode's settings-resolution priority ensures the 18.0 value correctly overrides the stale IPHONEOS_DEPLOYMENT_TARGET = 18.4 still present in the project-level project.pbxproj build configurations.
  • CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE is already set project-wide, so any code that relied on 18.1–18.4 APIs without guards will surface as a compiler warning or error on the next build, providing a safety net for the lowered target.

Confidence Score: 4/5

Safe to merge; the xcconfig change correctly lowers the deployment target at the target level, and the compiler's unguarded-availability warning is already enabled to catch any API usage now out of range.

The change is a single-line config fix with a clear motivation. The stale 18.4 value remaining in the project-level project.pbxproj settings does not break anything at build time but leaves the settings inspector inconsistent, which is a minor housekeeping gap worth cleaning up before the next change touches that file.

ios/cmux-ios.xcodeproj/project.pbxproj — two project-level IPHONEOS_DEPLOYMENT_TARGET = 18.4 entries were not updated alongside the xcconfig change.

Important Files Changed

Filename Overview
ios/Config/Shared.xcconfig Lowers IPHONEOS_DEPLOYMENT_TARGET from 18.4 to 18.0 to satisfy Iroh framework requirements; the xcconfig is included by both Debug.xcconfig and Release.xcconfig at the target level so the change takes effect correctly.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Shared.xcconfig\nIPHONEOS_DEPLOYMENT_TARGET = 18.0] --> B[Debug.xcconfig\n#include Shared.xcconfig]
    A --> C[Release.xcconfig\n#include Shared.xcconfig]
    B --> D[Target Debug Config\nbaseConfigurationReference: Debug.xcconfig\nEffective target: 18.0]
    C --> E[Target Release Config\nbaseConfigurationReference: Release.xcconfig\nEffective target: 18.0]
    F[project.pbxproj\nProject-level Debug\nIPHONEOS_DEPLOYMENT_TARGET = 18.4\nstale lower priority] -.->|overridden by target xcconfig| D
    G[project.pbxproj\nProject-level Release\nIPHONEOS_DEPLOYMENT_TARGET = 18.4\nstale lower priority] -.->|overridden by target xcconfig| E
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A[Shared.xcconfig\nIPHONEOS_DEPLOYMENT_TARGET = 18.0] --> B[Debug.xcconfig\n#include Shared.xcconfig]
    A --> C[Release.xcconfig\n#include Shared.xcconfig]
    B --> D[Target Debug Config\nbaseConfigurationReference: Debug.xcconfig\nEffective target: 18.0]
    C --> E[Target Release Config\nbaseConfigurationReference: Release.xcconfig\nEffective target: 18.0]
    F[project.pbxproj\nProject-level Debug\nIPHONEOS_DEPLOYMENT_TARGET = 18.4\nstale lower priority] -.->|overridden by target xcconfig| D
    G[project.pbxproj\nProject-level Release\nIPHONEOS_DEPLOYMENT_TARGET = 18.4\nstale lower priority] -.->|overridden by target xcconfig| E
Loading

Reviews (1): Last reviewed commit: "Fix iOS deployment target for Iroh frame..." | Re-trigger Greptile

// Platform Configuration
// ==========================================
IPHONEOS_DEPLOYMENT_TARGET = 18.4
IPHONEOS_DEPLOYMENT_TARGET = 18.0

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Stale deployment target in project.pbxproj not updated

ios/cmux-ios.xcodeproj/project.pbxproj still contains IPHONEOS_DEPLOYMENT_TARGET = 18.4 in the project-level Debug and Release build configurations (lines 350 and 408). These are project-level settings (no baseConfigurationReference), so the target-level xcconfig value of 18.0 correctly wins at build time — the fix works. However, the leftover 18.4 entries create a misleading "Levels" view in Xcode's Build Settings inspector and could confuse developers who check the project setting directly or who later remove the xcconfig reference. Consider updating those two entries in project.pbxproj to 18.0 for consistency.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

This branch was successfully deployed

1 active deployment
Preview – cmux — bf86c2e2 Deployed Jul 16, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant