Choosing an iPhone proxy app is not only a question of which feature list looks longer. The practical differences are how you obtain the app, what its purchase covers, how you manage rules and configuration files, and how much work you want to do when a setup changes. Shadowrocket is a paid iPhone and iPad app distributed through the App Store. This guide explains what it can do, where hands-on configuration matters, and how to decide whether its workflow fits your needs. It assumes you already have your own service details; the app purchase does not include a proxy service or subscription.
Shadowrocket is a good fit if you want one iPhone or iPad app for importing your own service details, choosing a routing mode, and adjusting rules in a configuration file. Its flexibility comes with a learning curve: you need to understand the difference between a server, a Config file, and Global Routing. Check the current App Store listing for price and compatibility, and assess scripting or rewrite requirements against the specific configuration you intend to use.
1. What the purchase covers—and what it does not
Shadowrocket is a paid app obtained from the App Store. Its purchase is separate from any proxy service: buying the app does not provide a server, subscription, account, or access credentials. If you already have service details, you can enter or import them in the app. If you do not, the app by itself cannot create a remote service for you.
The listed price and availability can differ by App Store storefront and may change. Check the product page in the storefront associated with your Apple Account before purchasing. The same listing is the place to confirm current device and operating-system requirements. Do not rely on an old price, a screenshot, or a claim about compatibility when making a current purchase decision.
It also helps to separate three things that are often confused: the app purchase, the app’s local data, and the service you already use. The purchase record is tied to the purchasing Apple Account. Server entries and configuration files are app data. Whether a server can connect is determined by the service details and the conditions of the network you are using. Restoring one does not automatically restore the others.
For a new user, the most useful buying question is not simply whether the app has many options. Ask whether you are prepared to maintain your own service details and, if needed, review rules or configuration files. If you want a basic connection with no interest in understanding the active routing mode, the extra choices may feel like work rather than a benefit.
2. Rules and Config: flexibility depends on understanding the pieces
Shadowrocket separates connection information from routing instructions. A server entry in Home describes how to reach a service using the details you already have. A file in Config can define how requests are handled, including which policy applies when a rule matches. Global Routing determines the overall routing mode. Seeing a server in the list, importing a file, and turning on the connection are separate actions; none alone proves that a particular website is using the route you intended.
For rules-based routing, select the relevant configuration in Config and set Home → Global Routing to Config. Rules are evaluated in order, so specific exceptions usually need to appear before broader matches, with a fallback such as FINAL at the end. For example, the following lines illustrate a direct exception followed by a broader proxy rule; the example domains are placeholders, not service information.
[Rule]
DOMAIN,account.example.com,DIRECT
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT
In this example, the exact account hostname is checked before the domain-wide rule. If the broader rule appeared first, the request could match it before reaching the exception. A rule can only use a policy that exists in the active configuration or is otherwise available in the current setup. It does not create a server or supply missing credentials.
Routing checklist
- Routing mode
- Home → Global Routing → Config
- Active file
- Confirm the intended file in Config
- Rule order
- Specific matches before broad matches
- Fallback
- Place FINAL at the end
A correct rule list still depends on selecting the matching Config and routing mode.
Keep the concepts separate
- Server entry
- Connection address and authentication details
- Config file
- Rules and other configuration settings
- PROXY
- A policy used by a matching rule
- Global Routing
- The overall routing mode on Home
When a result is unexpected, check each item independently instead of replacing everything.
This workflow rewards users who want control over individual domains and can read the configuration they use. It is less convenient if you expect every imported file to work without checking its assumptions. A file may refer to policy names, DNS settings, or server entries that are absent from your current setup. Before replacing an existing file, keep a copy and confirm which file is selected.
3. Scripts and advanced options: verify requirements before relying on them
Some users need more than basic domain rules. A configuration may include URL Rewrite entries or script-related behavior, and advanced settings can depend on the file, the app’s current capabilities, and the permissions needed for a particular operation. Treat the configuration itself as part of the feature: a script name or rewrite line in a file does not guarantee that its dependencies, input data, or expected policy are present.
Before importing an advanced configuration, identify what it changes and whether it requires additional setup. Read its relevant sections, note any referenced policies, and check whether a feature depends on HTTPS inspection or a local certificate. Do not enable certificate-related behavior simply because a guide says it is required; understand what traffic it affects and follow the instructions for the configuration you trust. If you only need domain-based routing, begin with ordinary rules and leave unrelated advanced options unchanged.
- For simple routing: Confirm the active Config, use a small number of domain rules, and keep a deliberate FINAL rule at the end.
- For URL changes: Check the target host, matching conditions, and the intended rewrite result. A rewrite rule is not the same as a proxy-routing rule.
- For script-dependent setups: Check the script’s purpose, referenced resources, and expected inputs before enabling it. Avoid importing an opaque file whose effects you cannot assess.
- For encrypted traffic handling: Determine whether the setup needs additional certificate configuration and whether that is appropriate for the task. Do not treat certificate checks as a routine troubleshooting switch.
These checks matter when adapting an existing setup as well as when starting from scratch. Configuration formats and policy names are not automatically interchangeable. If you bring over a file written for a different app or an older workflow, inspect and test it rather than assuming every section will behave identically. Preserve the original, change one item at a time, and verify a specific request after each change.
4. Setup effort: choose the workflow that matches your use
Shadowrocket can be used with different routing approaches, but those approaches solve different problems. Config is suited to rule-based decisions. Proxy is useful when you deliberately want proxy routing for the current session or need a controlled connectivity test. Direct helps check whether a destination works without proxy routing. Switching modes can change the result for all traffic, so note the current selection before experimenting and return to your intended mode afterward.
Uses the selected configuration and its rules to decide how matching requests are handled. It gives you control over exceptions and fallback behavior, provided the rules and policies are set up correctly.
Best for: Everyday use when you want rule-based routing.
Routes traffic using the proxy mode rather than relying on the specific domain rules you are trying to verify. A successful test in this mode does not prove that your Config rules are correct.
Best for: A deliberate temporary test of proxy connectivity.
Uses direct routing. A rule that points to PROXY does not by itself switch Global Routing out of Direct.
Best for: Checking direct network access or confirming a baseline.
A low-friction first setup is to add only the service details you already have, confirm that the connection works, and then add a configuration only if you need rule-based behavior. This sequence makes failures easier to isolate. If connectivity fails before you introduce rules, investigate the service details, current network, or DNS conditions. If basic connectivity works but one domain behaves unexpectedly, inspect its matching rule, the order of rules, and the selected Global Routing mode.
Keep a short record during setup: selected server, active Config, routing mode, test website, and the result. If you change a server, DNS option, and multiple rules at once, it becomes difficult to know which change mattered. Repeating the same test after one change gives you more useful evidence than toggling several options and relying on memory.
5. Who should choose Shadowrocket?
Shadowrocket is most suitable for users who want to manage their own setup on an iPhone or iPad and are comfortable learning a small number of technical distinctions. The strongest reason to choose it is a concrete need: importing your own service details, selecting a routing mode, applying domain rules, or maintaining a configuration file. The number of advanced options is less important than whether you can identify which option is responsible for the behavior you want.
- New to proxy apps: Start with the App Store listing, confirm the current price and compatibility, and learn Home, Config, and Global Routing before editing rules. Test basic connectivity first.
- Interested in custom rules: Learn DOMAIN, DOMAIN-SUFFIX, and FINAL, then verify rule order and the active routing mode. Keep a copy of the original Config before editing.
- Maintaining an existing setup: Record the current server, selected Config, and routing mode before changing devices or files. Re-check policies and dependencies rather than assuming imported settings are complete.
- Looking for scripting or rewrite behavior: Confirm that the exact configuration and task you need are supported by the current app and that you understand any additional permissions or setup involved.
Three quick questions can help you decide whether the workflow is a good match:
Does buying the app include a proxy subscription?
No. The App Store purchase is for Shadowrocket. You need your own service details, and any service costs are separate.
Can I use rules without selecting Config?
Do not assume so. For rule-based routing, select the intended file in Config and set Home → Global Routing to Config, then test a specific domain.
Should I import an advanced file before I understand it?
First check its rule order, referenced policies, and any script or certificate requirements. Keep a backup and test one change at a time.
In short, choose Shadowrocket when its App Store purchase model and configuration workflow fit your needs—not because a long feature list promises automatic results. Check the current product listing for purchase and compatibility details, use only service information you already have, and begin with the simplest setup that can verify your intended connection. Once the basic path works, add rules or advanced behavior only when you have a clear reason and a way to test the result.