fix(swift-ios): allow HTTP connections to NetBird and Tailscale IPs - #6303
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
d68dd8e to
6a33052
Compare
ApprovabilityVerdict: Needs human review This changes iOS App Transport Security from You can customize Macroscope's approvability policy. Learn more. |
6a33052 to
00d07f5
Compare
What Changed
Aligned the native Swift iOS app with the Expo app by configuring App Transport Security with only
NSAllowsArbitraryLoads = true. This replaces the narrowerNSAllowsLocalNetworkingandts.netexception configuration.Why
T3 Code users can connect to arbitrary self-hosted servers over NetBird or Tailscale, including plain HTTP endpoints at
100.*and10.*addresses or custom hostnames. The app cannot enumerate those destinations ahead of time. Matching the Expo client ensures the Swift client applies one global ATS policy to all user-configured server URLs; keepingNSAllowsLocalNetworkingwould cause modern iOS versions to ignoreNSAllowsArbitraryLoads.Checklist
Verified with
plutil -lint apps/swift-ios/Resources/Info.plist,git diff --check, and Xcode build settings confirmingResources/Info.plistis the app target plist.Created with GPT-5.6 in the Codex harness.
Note
Medium Risk
Broadens ATS to allow cleartext HTTP for all domains, not just Tailscale/local networking, which has security and App Store review implications even though it matches the Expo client.
Overview
Aligns the Swift iOS App Transport Security policy with the Expo app so users can reach arbitrary self-hosted servers over NetBird/Tailscale, including plain HTTP at
100.*/10.*and custom hostnames.Replaces
NSAllowsLocalNetworkingplus thets.netinsecure-HTTP exception with a singleNSAllowsArbitraryLoads = truesetting inInfo.plist. Keeping both flags would cause modern iOS to ignore the broader allow.Reviewed by Cursor Bugbot for commit 00d07f5. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Allow HTTP connections to NetBird and Tailscale IPs in iOS app
Updates Info.plist to set
NSAllowsArbitraryLoads = true, replacing the previousNSAllowsLocalNetworkingflag and thets.net-specific HTTP exception domain.Risk:
NSAllowsArbitraryLoadsbypasses App Transport Security for all domains, not just NetBird and Tailscale IPs, which may affect App Store review.Macroscope summarized 00d07f5.