A rule-based proxy client for iPhone and iPad. Verify where to buy it, then import an existing configuration and understand when rule-based routing and a one-time purchase apply.
One-time app purchase ≠ service subscriptionCheck the App Store listing for system requirements
Feature index
Understand the connection process through settings
Server details determine where the connection goes. Global Routing determines how traffic is routed, while Rules in Config determine which policy applies to each request. Understand how these pieces fit together before changing settings to avoid repeated imports and guesswork.
Rule: Choose a policy based on conditions
Rules determine how different requests are handled. After selecting Config under Global Routing on Home, the rules in the active configuration are essential for troubleshooting routing. Rules are generally matched from top to bottom, so place more specific conditions before broader ones, and use FINAL to catch the remaining requests. DOMAIN-SUFFIX matches a domain and its subdomains; PROXY, DIRECT, and REJECT specify different policies. Before editing, save a copy of the original configuration. Afterward, confirm that the edited file is active and check whether actual requests match the expected rule.
On Demand: Trigger connections based on network conditions
On Demand triggers connection behavior when specified conditions are met, which is useful if you often switch between Wi-Fi and cellular networks. Find On Demand in Settings, then check conditions related to network type, Wi-Fi name, or domain. It controls when to connect; Global Routing still determines how requests are routed. When setting it up, enable just one easy-to-test condition first, then test what happens when you join and leave that network. If the connection returns after you disconnect manually, check whether an On Demand condition was triggered before deleting a server or reinstalling the app.
On Demand
Wi-Fi / Cellular
Global Routing → Config
Shadowrocket supports Shadowsocks, VMess, VLESS, Trojan, Hysteria2, and other protocols. The protocol used by your existing server determines which Type to select in Add Server; similar names do not mean protocols are interchangeable. Check Host, Port, authentication details, and the transport and TLS options required by that protocol. Available fields depend on the selected type. If you have an import link or QR code, import it first and verify each field to avoid copy-and-paste errors. If the connection fails, compare the settings with your server details before changing the protocol, port, and authentication fields all at once.
Add Server
Type → Match the protocol used by your existing server
Host / Port → Check your server details
Subscribe imports server details from a subscription URL you already have. Before importing, make sure the link is complete and keep its query parameters intact. Do not share URLs containing access credentials in screenshots or chat logs. After importing, check that the entry appears in the SERVER section on Home, then select the server you want to use. Updating a subscription refreshes the content provided by that subscription; it does not update the app or automatically configure all routing rules. If entries change after an update, check the subscription source and returned content. This guide explains importing only; it does not provide subscriptions or server details.
Subscribe → Import an existing URL
SERVER → Check and select an entry
Connectivity Test → Check reachability
Config: Distinguish file contents from the active selection
Config manages configuration files that affect how requests are handled. General describes common settings, Rule organizes matching conditions and policies, Host handles specified name mappings, and URL Rewrite matches and rewrites request URLs. Seeing a file does not mean it is active; after editing, confirm which configuration is selected and check Global Routing. When making your first changes, edit one section at a time and keep the original file so you can revert. iCloud sync can help manage content across your own devices, but verify its scope and status in the app. A sync toggle alone does not confirm that you have a complete backup.
[General]
bypass-system = true
dns-server = system
[Rule]
FINAL,DIRECT
Connectivity Test checks whether the selected server is reachable using the current test method. Its results do not directly indicate webpage loading speed or guarantee access to every destination. Start by confirming that your basic network connection works, then test the selected entry, and finally check the specific website and its rules. Traffic records in Data can help show whether requests are passing through, but total traffic does not explain why a connection failed. If the test responds but a page will not load, check DNS, the destination, matched rules, and transport settings. Change one variable at a time and record what happens before and after so you can tell which change helped.
Basic network → Selected SERVER → Connectivity Test
Destination access → DNS → Rule → Data
Shadowrocket is a paid client for Apple platforms and is available exclusively through the App Store. You can use the purchase history for your Apple ID to restore the app. Check the App Store listing for device compatibility, system requirements, and purchase eligibility.
iPhone
Check the App Store product page before purchasing and installing. The first time you connect, iOS may ask permission to add a VPN configuration. This permission enables the network connection; it does not replace server authentication. Return to Home, select your own server, and check Global Routing.
Use the same Apple ID to check your purchase history, verify compatibility, and get the app. A larger display does not change how servers, configurations, and routing modes work together. Check app restoration and personal configuration restoration separately; seeing the app again does not mean your subscriptions and rules have also been restored.
Shadowrocket is also available on Mac and Apple TV through the same App Store. Check the listing for compatibility.
Before moving to a new device, check whether you can export or sync the configuration on your current device, and note the names of your active subscription, server, and configuration file. The App Store keeps app purchase records; subscription access, server validity, and rule content are separate. Even on two devices signed in to the same purchasing account, verify VPN permissions and connection results on each device.
The steps below assume you already have your own subscription or server details. First establish a basic working connection, then add more specific routing conditions. Avoid changing DNS, rules, and On Demand settings all at once during your first connection.
Step 01
Add Server / Subscribe
On Home, tap Add Server to add an existing server or import your own subscription. For manual setup, select Type first, then check Host, Port, and authentication fields. If you use a link or Scan QR Code, verify the type and required parameters after importing. Seeing an entry under SERVER only means the details were added; it does not confirm that the server works.
If the import fails, check that the link was copied in full, has not expired, and is reachable on your current network. Do not enter a subscription URL as a regular server address in Host, and do not share the full link while troubleshooting. If you need to record the error, hide authentication details and note only the error message.
Step 02
Global Routing
Config mode processes requests according to the active configuration. Proxy mode sends typical requests through the selected proxy route. Direct mode connects directly. Choose a mode based on what you want to test: to route traffic by website, check Config; to temporarily test the proxy route, compare with Proxy; to check the basic network connection, use Direct as a comparison.
A mode name does not guarantee a successful connection. Config may still contain DIRECT rules, and Proxy cannot fix invalid server details. After each change, test the same destination and note the selected server and configuration name so you do not confuse results from different conditions.
Step 03
Home / Connectivity Test
Select a server and turn on the connection switch at the top of Home. When prompted by the system, confirm that you want to add a VPN configuration. Run Connectivity Test first, then visit the destination you need. The test helps narrow down the issue; visiting the destination confirms whether it works in your specific situation. Consider both results together.
If the switch is on but pages will not load, disconnect to confirm that the basic network works, then check the server, DNS, and rules. If the connection comes back after you turn it off, check On Demand. Keep the original configuration and change one variable at a time; this makes it easier to identify the cause than changing several settings in a row.
After completing these steps, check Data for relevant traffic and test again on different networks. If Wi-Fi works but cellular does not, treat the network change as a clue rather than assuming the configuration file is damaged. Once the basic connection is stable, consider domain-based routing, On Demand, and syncing across devices.
Check the product page and understand what you are buying
Shadowrocket Review - Official User Manual is the official Shadowrocket website and user manual. Verify the product using its App Store listing and in-app information, not just a search result name or thumbnail icon.
Compare the icon on the product page with the official app icon, then verify the developer, Shadow Launch Technology Limited, and the app ID in the product page URL, 932747118. All three details should point to the same product page; do not rely on the nickname alone.
App Store visibility and account storefront
App Store search results, displayed currency, and purchase availability depend on your account's storefront. If you cannot find the app in search, open the product page to verify the listing and check the specific message shown by the store. A missing search result does not necessarily mean there is a problem with your device, and screenshots from other pages are not a reliable guide to the current price. Check the App Store listing for system requirements, device compatibility, and purchase conditions.
One-time purchase covers the client license
Shadowrocket is a closed-source commercial app sold as a one-time purchase. The US storefront price is about $2.99; other storefronts show local currency, and the amount on the purchase confirmation screen is the final price. The purchase covers use of the client to manage existing servers, import subscriptions, apply rules, and diagnose connections. It does not include a server account, subscription validity, or network service availability.
Purchases and restoration on two devices
You can use the purchase history for the same Apple ID to get Shadowrocket on iPhone and iPad. Check the App Store listing for eligibility. When reinstalling or switching devices, make sure the store is signed in to the original purchasing account, then look under purchased items. After restoring the app, separately check your subscription, manually added servers, and active Config. Purchase history does not show whether this personal content has been synced or backed up.
Manage app updates and configuration updates separately
Update the app through the App Store, and refer to the listing for release information. Subscribe updates content returned by an existing subscription; editing Config changes local or imported rule files. Neither replaces an app update. If connections fail after an update, keep your current configuration, note the active mode and symptoms, then troubleshoot based on what is happening. Avoid clearing all settings immediately.
Keep essential information backed up and protect credentials
Before changing rules, switching devices, or deleting old entries, make sure you can recover the original configuration. Subscription URLs, server passwords, and authentication parameters may grant access and should not be included in public examples. When reporting an issue, share the selected protocol and mode, the error message, and the network conditions. Hide sensitive fields first. This preserves useful troubleshooting details without exposing complete access credentials in screenshots.
Once your basic connection is working, choose a topic based on what you need. To route only certain websites through a proxy, start with rule matching. If connections change with the network, read about On Demand. If a test responds but a page will not load, check DNS and the actual request route. These articles explain how settings interact; a single test result is not a complete diagnosis.
A response from Connectivity Test does not rule out a DNS lookup failure for the destination domain. Check the basic network, DNS settings, and rule path to distinguish server reachability from website accessibility.
Learn how automatic triggers relate to the manual switch. Test one condition first, then add network name or domain conditions gradually to avoid mistaking an automatic reconnection for a failed connection switch.
Start with domain conditions and fallback policies to understand how rule order affects requests. After editing, confirm the active Config and test by visiting the destination; do not just check that the rule text was saved.