Platforms 10 min read

iOS Clash Clients: App Store Availability and How to Import Configurations

Learn how to get an iOS client that supports Clash configurations from the App Store, import a subscription, file, or QR code, and enable the VPN.

First, know that Clash configuration support doesn’t necessarily mean the app uses the mihomo core

When choosing a proxy client for iPhone, check three things separately: whether it’s available in your App Store region, whether it can read your configuration format, and whether it supports the protocols used by your nodes. An app’s name containing Clash or a claim that it “supports Clash subscriptions” doesn’t prove full support for mihomo configuration fields.

Clash YAML is a configuration format, mihomo is a proxy core, and an iOS client handles configuration management, node selection, and the system network extension. Some clients convert imported YAML into their own internal format; others extract only the nodes and leave out the original rules and DNS settings. So verify “import successful” and “runs as configured” separately.

  • Full configuration: Typically includes proxies, proxy-groups, and rules, and may also include DNS, rule providers, and proxy providers.
  • Node subscription: Primarily provides server details. The client or another configuration must still supply policy groups and routing rules after import.
  • Client-specific format: Import it as instructed by the app; changing the file extension to .yaml isn’t enough.

Getting the App from the App Store: Check Region, Developer, and iOS Requirements

Find the App Store listing from the download page

  1. Open this site’s download page, select iOS, and review the clients currently listed and how to get them.
  2. Open the relevant App Store listing and check the app name, developer, version history, and minimum iOS version under “Compatibility.”
  3. Read the description for supported configuration formats. Look for Clash YAML, remote subscriptions, file import, and support for the protocols you need.
  4. Check the price and purchase requirements, then install the app. Open it once installation is complete and make sure it has configuration management and a connection control before importing anything.

Search results may include apps with similar names. Don’t judge by the icon alone or treat a sponsored result’s placement as proof of compatibility. Check the developer details on the App Store listing and the app’s own documentation to verify its source.

If the App Isn’t Available, Check Your Account Region First

App Store availability is primarily tied to the country or region of the Apple Account used for purchases; turning on a proxy won’t switch it automatically. Check under Settings → your name → Media & Purchases → View Account → Country/Region. Labels may vary slightly by iOS version. Changing regions can affect your balance, existing subscriptions, and payment methods. Review Apple’s requirements first, and don’t change regions just to install one app.

If you see “This app is not available in your country or region,” choose a client available in your current region that explicitly supports your configuration format. Don’t use an Apple Account shared by a stranger, or accept an untrusted enterprise certificate or device management request just to install a proxy app.

Import a Subscription URL: Save, Update, and Select the Configuration

Remote subscriptions are useful when you need to update nodes regularly. Get the subscription URL specifically for Clash from your service provider. The same account may offer Clash, generic node, and other client formats, so don’t assume the URL’s appearance tells you what it returns.

  1. Copy the original URL: Use the provider’s copy button to avoid copying the page title, extra spaces, or punctuation added by a messaging app.
  2. Add a remote configuration: Open the client’s configuration manager and look for options such as “Add,” “Import from URL,” or “Remote configuration.” Menus vary by app; these are feature names, not universal navigation paths.
  3. Download it for the first time: Enter a recognizable name, save it, and run an update manually. Wait for the download and parsing to finish.
  4. Check the import: Confirm that nodes or policy groups appear. If the app shows a rule count, check that the rules loaded too.
  5. Set it as the active configuration: Some apps let you save multiple configurations but use only one at a time. After saving, select the one you just imported.

If an update fails, start by checking the error type: 401 or 403 often indicate an authorization issue or server restriction; for 404, verify the URL; a parsing error means you should check the response content and the client’s supported formats. A URL opening in a browser doesn’t mean it returns YAML—it may show a login page or an error instead.

Import from a File or QR Code: Identify the Contents Before Choosing an Option

Import YAML with the Files App

Local files are useful for moving an existing configuration or when subscription downloads are temporarily unavailable. Save the .yaml or .yml file in the Files app under On My iPhone or iCloud Drive, then choose it using the client’s “Import from File” option. If the app supports a share extension, you can also touch and hold the file in Files, tap Share, and select the client.

  • The file must be UTF-8 plain text, not a rich-text document, saved web page, or PDF renamed with a different extension.
  • YAML uses spaces for indentation. Make sure your editor hasn’t replaced them with tabs, and preserve the original quotes and colons.
  • Check for external resource URLs in the configuration. Having the main file locally doesn’t mean proxy-providers or rule-providers are available offline.
  • Importing usually creates a copy inside the app. If you edit the original in Files, you may need to import it again; don’t assume the client syncs changes automatically.

The snippet below is only to illustrate the structure, not a complete, ready-to-connect configuration. It references a policy group named “Manual selection”; a working configuration must also define that group and provide usable nodes.

mode: rule
rules:
  - DOMAIN-SUFFIX,apple.com,DIRECT
  - MATCH,Manual selection

If the app reports a missing policy after import, first check that the name referenced in rules exactly matches an entry in proxy-groups. When moving a desktop configuration to iPhone, also check local file paths, listening ports, and core-specific fields—not just the node section.

A QR Code May Contain Just One Node

A QR code is a way to encode text, not a standard subscription format. It may contain an HTTPS subscription URL, a link for a single node such as ss:// or trojan://, or an app-specific import instruction. If the import adds only one node, the QR code may simply have encoded one node; it doesn’t mean the original rules were imported.

  1. Open the scanner in the client and grant camera access if prompted.
  2. If the QR code is on the same phone, use the client’s photo library scanning feature if available. Otherwise, ask the provider for the original text URL.
  3. Review the preview after scanning: is it a remote configuration URL, node information, or an unknown instruction? Decide whether to save it only after checking.
  4. After importing, check the configuration list and policy groups. Don’t rely only on a “Scan successful” message.

QR code images can contain credentials too, so don’t upload them to public scanning services. If camera access is denied, find the app in Settings and check its permissions. On iOS 18, app settings are usually under Settings → Apps → [app name].

Enable the VPN: Authorize the System Tunnel, Then Choose an Exit Node

Once the configuration is ready, choose a working node in the proxy policy group, then turn on the client’s connection switch. The first connection usually triggers a system prompt asking to add a VPN configuration. Confirm that it was initiated by the client you just installed, then follow the prompts and complete system verification. This authorization lets the app handle traffic through the system network extension; it doesn’t mean every request will necessarily use a remote node.

  1. Check the system configuration: Go to Settings → General → VPN & Device Management → VPN to check the relevant entry and connection status. You only need to manage the VPN here; there’s no need to install an additional device management profile.
  2. Choose a proxy mode: Use rule mode for everyday use. If the client offers global mode, you can use it briefly for troubleshooting and select an actual exit node.
  3. Check the policy group: If a rule matches a group set to DIRECT, the request will still connect directly—even when the system shows the VPN as connected.
  4. Test before changing settings: Make one connection with the defaults first. Then consider DNS, on-demand connections, or other advanced features. Avoid changing several variables at once.

Desktop settings such as “system proxy” and “TUN” don’t map directly to iOS. iOS clients typically use a Packet Tunnel in Network Extension to handle traffic; whether the app displays “TUN” depends on its design. Don’t copy desktop tutorials by entering 127.0.0.1:7890 in the Wi-Fi HTTP proxy field: that address points to the iPhone itself and is useful only if the app provides a corresponding local listener.

Verify the Connection and Troubleshoot Issues

Check the Rule and Exit Node for the Same Request

Open an HTTPS page that normally requires a proxy and check the client’s connection or log panel at the same time. If it shows the matched rule, policy group, and exit node, verify all three. Seeing a domain without a successful response may still point to DNS, a handshake, or a remote connection issue. If you use an exit IP lookup service, make sure the request itself wasn’t routed directly by a rule.

A latency test reflects how a specific test target responded at that moment. For example, a reading of 120 ms isn’t a download speed and doesn’t guarantee that a video or game server is reachable. This is an example reading, not a measurement by this site. Verify with an actual page request, and test over both Wi-Fi and cellular data.

Symptom Check first What to do next
Subscription saves, but no nodes appear Response content and import type Make sure the response isn’t an HTML login page, and check that you didn’t import a node subscription as a full configuration.
Unknown field or unsupported protocol Client format and core compatibility Get a subscription tailored to the app. Don’t just remove the field causing the error and continue.
VPN is connected, but webpages won’t load Active configuration, node, and DNS logs Switch to a node you know works and retry the same page. Check for any DNS resolution errors.
Only some websites use the proxy Matched rule and policy group selection Check whether the routing is expected. Use global mode only as a diagnostic comparison, not as a substitute for fixing the rules.
Another connection takes over shortly after it starts Other proxy or local VPN apps Temporarily turn off other apps’ connections and auto-connect options, then test this client on its own.
Updates or connections fail only on cellular data Cellular data permissions and network differences Go to Settings → Cellular and check the app’s permission, then compare the result with Wi-Fi.

Update Configurations and Keep Useful Records

If a node stops working, update the remote configuration first, then check whether the policy group still selects a working node. If the app supports automatic updates, start with once a day; follow your provider’s recommended interval. There’s no need to fetch updates every minute. Rule set updates and node subscription updates may be separate operations, so check each one individually.

When reporting an issue, note your iOS and client versions, configuration type, whether you’re on Wi-Fi or cellular data, when the error occurred, and the steps that led to it. Hide subscription URLs, node passwords, and tokens before sharing logs. Check each step in order—get the app → import the configuration → select it → authorize the VPN → verify a request—to pinpoint the problem more effectively than repeatedly reinstalling. For more detailed import and troubleshooting steps, see Getting Started. For configuration concepts, consult the full documentation.

Download Clash