Oct 14, 2026 · Troubleshooting · About 9 min read

Shadowrocket vs Quantumult X: Which iOS Proxy App Is Better?

Compare Shadowrocket and Quantumult X on cost, rules, protocol support, and daily setup. Find out which iOS proxy app better fits your experience level, subscription format, and budget before you buy or switch.

At a glance

Choosing an iOS proxy app is less about a universal “best” and more about matching the app to your setup, experience, and budget. This guide focuses on what to verify in Shadowrocket before you buy or switch: its one-time App Store purchase, the separate cost of any service you already have, rule-based routing, supported connection formats, and day-to-day setup. It does not assume that an app purchase includes a subscription or that every configuration works without adjustment. Use the checklist and hands-on steps to decide whether Shadowrocket fits your needs.

1. Start with the real buying question: app cost or service cost?

When people compare iOS proxy apps, “cost” can mean two different things. Shadowrocket is a paid app distributed through the App Store. Separately, a user may already have their own subscription or server details. Buying the app does not include a connection service, server access, or a subscription. Conversely, changing apps does not automatically move, renew, or replace a service subscription.

The App Store price and availability can vary by storefront and may change. Check the product page shown to the Apple Account used for purchases before deciding. The app is identified by App Store app ID 932747118 and developer name Shadow Launch Technology Limited. Use the App Store listing to confirm the current price, compatibility information, and purchase terms; do not rely on an old price quoted in a forum or article.

Before paying, also check what format your existing setup uses. A server share link such as one beginning with ss://, vmess://, vless://, or trojan:// describes connection details. A subscription URL retrieves a list of entries. A remote configuration can contain routing rules and other settings. These are different kinds of data, and one cannot always be imported in place of another.

1 purchase
Shadowrocket is acquired through its App Store product page
2 costs
Separate the app purchase from any service subscription you already have
3 formats
Distinguish individual links, server subscriptions, and remote configurations

For a fair buying decision, write down what you already have, what it costs, and what you expect the app to do. If you only need to open a configuration file, your priorities may differ from someone who wants to choose among server entries and maintain custom rules. If your service has a specific app requirement, check its documentation before purchasing anything. An app’s protocol list alone does not establish that a particular subscription, server, or configuration is compatible.

Use the official App Store listing to verify the product and its current terms. The app purchase is not a line or service plan, and no app can make an expired subscription valid. If you are still comparing features, identify the exact task you need to perform—such as importing your own subscription, routing selected domains, or testing a connection—rather than relying on a broad “more features” claim.

2. Rules and routing: decide how much control you need

Shadowrocket can route traffic according to rules in an active Config. A rule combines a match condition with a policy, such as PROXY, DIRECT, or REJECT. Rules are evaluated in order, and a catch-all rule such as FINAL handles traffic not matched earlier. This gives experienced users a way to express selective routing, but it also means a configuration can behave differently from a simple “connect” switch.

The main decision is whether you want rule-based routing or a simpler temporary routing posture. In Global Routing, the available choices and behavior depend on the active app configuration. Config uses configuration rules, while Proxy and Direct provide alternate routing choices. These options are not interchangeable: if you select Direct, a valid proxy rule does not make the traffic use a proxy. If you select Proxy, you may bypass the selective decisions you intended to test in a rule-based setup.

Uses the active configuration’s rules to decide how matching traffic is routed. Check rule order, policy names, and the final fallback before relying on it.

Best for: everyday use when you want traffic handled by explicit rules

Provides a useful temporary test posture when you want to check whether a selected proxy route works without first diagnosing every rule.

Best for: isolating a routing-rule question during troubleshooting

Routes traffic directly rather than through the proxy policy. It can help confirm whether a problem is related to the proxy path or to ordinary network access.

Best for: a controlled direct-connection test

These are choices within Shadowrocket, not guarantees that every application request will match a particular rule. Some apps use multiple domains, cached content, or connection methods that make a single test inconclusive. Check request activity and test one change at a time. If a rule does not produce the expected result, first confirm that the active mode is Config, the intended Config is selected, and the rule appears before any broader rule that would match first.

Bottom line: choose based on your willingness to inspect rules

If you want selective routing and are comfortable checking rule order, policies, and logs, Config-based routing can provide useful control. If you do not want to maintain or understand a configuration, verify that your existing setup supplies one you can use before buying the app.

3. Protocols and import formats: check the actual data you have

Protocol support matters only when it matches the connection details you already have. Shadowrocket supports common proxy protocols including Shadowsocks, VMess, VLESS, and Trojan, but a protocol name does not prove that a particular server entry is complete or compatible. Transport options, encryption settings, TLS details, authentication values, and server-side requirements must also agree. When one field is wrong, an entry may import successfully but fail to connect.

It is also important to distinguish a single connection from a list that can be refreshed. A share link usually describes one entry. A server subscription is a URL that returns entries for Home. A remote configuration is managed in Config and may include rules. An HTTPS address by itself does not tell you which kind of content it returns; it could be a sign-in page, an error page, a subscription response, or a configuration file.

What you haveTypical clueWhere to checkWhat success means
Single server linkss://, vmess://, vless://, or trojan://Import it, then inspect the saved entry in HomeThe entry was parsed; connection still needs testing
Server subscriptionA URL identified by your existing service as a server listHome → “+” → Add Server → Type → SubscribeEntries are retrieved and shown in the intended group
Remote configurationA URL or file explicitly identified as a Shadowrocket configurationConfigThe configuration is available; review its rules and settings

Before switching apps, check whether your current information is portable. Keep your original subscription URL private: it may contain an access token. Do not post it in a screenshot, a public support request, or an online decoding tool. If an import fails, share only the relevant error text and a redacted format description. Preserve a recoverable copy of settings before replacing a working configuration.

Do not treat successful import as proof that the service is active. Import confirms only that the app could interpret some data. It does not confirm that the subscription is current, that the server is reachable, that authentication is correct, or that the selected Global Routing mode sends the relevant request through the intended route.

4. Hands-on evaluation: test your own setup before changing everything

A practical evaluation should use the configuration and service information you already have, not a generic demo address. Start with one test entry or one clearly identified subscription. Keep notes on the initial state so you can tell whether a change helped. The labels below are English interface terms; their locations can vary slightly with the app or iOS version.

  1. Verify the app

    Open the App Store product page and confirm the name Shadowrocket, developer Shadow Launch Technology Limited, and app ID 932747118. Check the price and compatibility shown for your storefront before purchase.

  2. Identify your data

    Read the instructions that came with your own service details. Decide whether you have a single share link, a server subscription, or a remote configuration. Do not paste a server-list URL into a single-server protocol form.

  3. Import one item

    For a server subscription, open Home → “+” → Add Server → Type → Subscribe, then enter the complete URL. For a remote configuration, use Config. Keep query parameters intact and do not expose credentials.

  4. Inspect the result

    Return to the relevant screen and confirm that the intended entry or configuration appears. For a subscription, check whether the target group contains entries. For a Config, review the rule list and selected configuration before connecting.

  5. Test routing

    Use a controlled test and confirm the expected Global Routing choice. If the result is wrong, change one setting at a time and inspect request activity. Restore the original mode and configuration when the test is complete.

Record four things: the format you imported, the screen where you imported it, whether the expected entries appeared, and the result of a connection test. This simple record prevents a common mistake: repeatedly importing the same URL when the real issue is an incorrect format, an expired link, a missing entry, or a routing mode set to Direct.

If a subscription update fails, note the full message and whether the existing entries remain visible. Do not delete the subscription as the first troubleshooting step. Confirm that the URL is complete and still valid with your own service, then test network access and update again. If an entry imports but does not connect, compare its address, port, authentication, and protocol settings with the source information instead of assuming that the app purchase is the problem.

5. Who Shadowrocket fits—and what to verify before switching

Shadowrocket is a more natural fit for someone who wants an iOS app with configurable routing and is prepared to understand the basic separation between Home entries, Config files, and Global Routing. Users who already have compatible connection information may find the import paths straightforward once they identify the format. Users who want to write or modify rules should be ready to test changes carefully and keep a copy of a working configuration.

It may be a poor fit if your main expectation is that paying for an app will provide a subscription, repair an expired service, or automatically translate an unrelated configuration into a working one. It is also worth pausing if you cannot confirm that your existing data is supported or if your service’s instructions require a specific setup you have not checked. These are compatibility and workflow questions, not simply a matter of which app has the longest feature list.

Before purchasing or switching, answer these questions:

For official acquisition and product verification, use the App Store listing. The product page is the place to confirm the current purchase terms; the app purchase and any service subscription remain separate.

Check the download guide

FAQ

Does buying Shadowrocket include a proxy subscription?

No. The App Store purchase is for the app. Any service subscription or server access is separate. This guide assumes you already have your own service details and does not recommend or provide a service.

Can I import any HTTPS URL as a subscription?

No. HTTPS only describes the connection scheme. The URL may return a web page, an error, a server list, or a configuration. Follow the format instructions for your own URL and import it into the matching area.

Why did an entry import but fail to connect?

Parsing and connecting are separate steps. Check the server address, port, authentication, protocol, and transport settings against your source information. Then confirm the selected entry and Global Routing mode.

Should I change all my rules when I switch?

No. Preserve your existing configuration first. Test one import or rule change at a time, verify the result in the active Config, and restore the previous setup if the test produces unexpected routing.

Verify on the App Store