A rule-based proxy client for iPhone and iPad. Verify the app, import your existing configuration, then check rule-based routing and your connection. The app is a one-time purchase.
Purchase Shadowrocket from the App Store and open it. Have your existing server details or subscription link ready before setting up the connection. When prompted to add a VPN configuration for the first time, read the system notice and confirm.
Use the same Apple ID you used to purchase the app, then find it in your App Store purchases. On iPad, follow the actual layout of Home, Config, and Settings rather than looking for buttons in the same places as on iPhone.
iPhone and iPad can share a purchase record, but restoring a purchase and transferring configuration are separate tasks. The purchase record determines whether you can get the client again; server details, subscription links, and custom rules must be checked separately. If you use iCloud sync, open the app on the other device and verify what actually synced, especially the selected server and Config. An installed app does not mean connection setup is complete.
When you first open the app, take a moment to locate the connection switch on Home, Global Routing, and the SERVER group before importing anything. A system prompt for VPN configuration permission means the app is asking to create a network configuration on your device; it does not mean a remote server is connected. After granting permission, return to the app, check your selections, and test access. If your device is managed, first check which network configuration permissions are allowed.
Shadowrocket is also available from the same App Store on Mac and Apple TV. Check the App Store listing for system requirements and compatibility.
First, distinguish servers, subscriptions, and Config: a server provides connection details, a subscription updates server entries, and Config determines how rules are applied. They are not interchangeable.
Global Routing and rule matching
Rule-based routing selects how different requests are handled. First, check Global Routing on Home: Config applies the selected configuration, Proxy uses proxy mode, and Direct uses direct mode. To route traffic by domain or address, select Config, then check the rule order and policy names in Config. Examples illustrate syntax only; do not use them to replace your existing configuration. When testing, check both the target request and the rule it matches—do not rely on the connection switch alone to determine whether routing is correct.
On Demand triggers connections based on network conditions you configure in Settings. First confirm that a manual connection works, so a server issue is not mistaken for a trigger problem. After setting conditions, test on the networks you use and check that connections behave as expected. If automatic connections behave unexpectedly or reconnect after being switched off manually, check On Demand and the related system settings first. Temporarily disabling automatic triggers while testing can make results easier to interpret.
Settings
On Demand
Test a manual connection → Set conditions → Switch networks and check again
Match Type to the server settings
Shadowrocket supports protocols including Shadowsocks, VMess, VLESS, Trojan, Hysteria2, and WireGuard. To add a server manually, start with Type in Add Server, then enter the details from your existing server configuration. Using the same protocol name does not guarantee that the port, authentication method, transport layer, or TLS settings are the same; do not copy fields from another entry. If required details are missing, ask your service provider for the complete configuration. Choose a protocol based on the server's actual settings, not its name alone.
Add Server → Type
Shadowsocks · VMess · VLESS
Trojan · Hysteria2 · WireGuard
Import and update existing entries with Subscribe
A subscription reads server entries from an existing link provided by your service provider. In Add Server, select Subscribe, fill in the fields shown by the app, and save. Then check the update result and the imported entries. A successful import means the data was read; it does not guarantee that every server can connect. If an update fails, first check that the link is complete and its authentication details are valid, then confirm that your current network can reach the subscription address. Subscription links may contain account credentials, so conceal the full URL and sensitive fields before sharing troubleshooting screenshots.
Add Server
Type → Subscribe
Save → Update → Check entries → Select a server
Check Config and iCloud sync separately
Config manages rules and related configuration. Importing a subscription does not explain what each rule does. Before editing, keep a recoverable copy, check sections such as General, Rule, and Hosts, then confirm that Home is using the intended configuration. If you use iCloud sync, also check the device account, system sync conditions, and the result in the app. Sync is not a connection test and does not replace a configuration backup. Recheck the selected item on the other device so you do not mistake an old configuration for the one you just changed.
Config
General
Rule
Hosts
Check the file contents and the currently selected item.
Connectivity Test, Diagnostics, and Data
Connectivity Test can help check connection status. For further troubleshooting, open Diagnostics in Settings; Data shows traffic readings. First note the network, server, and Global Routing mode used for the test, then compare the readings before and after one specific request. A single test does not represent every website or establish actual download speed. Data shows client-side traffic measurements, not your provider's billing records. An increase means data passed through the measured scope; check the request result too.
Home → Connectivity Test
Settings → Diagnostics
Data
Network conditions → Connection check → Request result → Traffic change
Settings depend on one another: protocol parameters determine how a connection is established, Global Routing determines how requests are handled, and rules in Config select the policy for each request. When troubleshooting, change one variable at a time and record the results before and after. If you change servers, adjust DNS, and switch routing modes all at once, it is difficult to tell which change resolved the issue. See Feature Guide for details on each feature, or use the Troubleshooting Guide to investigate DNS and subscription errors by symptom.
Three steps to your first connection
Start with existing server details or a subscription. Establish a connection you can test, then add rules and automation gradually.
01 · Add Server
Add a server or use Subscribe
Get subscription links from your service provider. If you have complete server details, select the matching Type in Add Server and enter them manually. After saving, return to Home, check that the expected entry appears in the SERVER group, and select the server you want to test. If you scan an existing QR code, check the decoded protocol and address rather than relying on the entry name alone.
Subscriptions, individual servers, and Config files serve different purposes. A subscription typically manages server entries, while Config contains request-handling rules. If the list does not change after an import, check that it was saved, updated, and added to the correct group. Do not repeatedly add the same link as a substitute for troubleshooting, or you may end up with duplicate entries that are hard to tell apart.
02 · Global Routing
Check Config / Proxy / Direct
Check Global Routing on Home. Config applies the rules in the current configuration; Proxy uses proxy mode; Direct uses direct mode. For rule-based routing, also confirm the Config file and the policies it references. Switching modes changes how requests are handled; it does not fill in missing server authentication or transport parameters.
You can compare modes during troubleshooting when you have a specific question, but restore your usual settings when testing is done. If proxy mode works but Config mode does not behave as expected, focus on rules, policies, and DNS rather than immediately buying the app again. For a useful comparison, test the same target with the same server under similar network conditions.
03 · Connectivity Test
Connect and test an actual request
Turn on the connection switch on Home and confirm the VPN configuration permission prompt if one appears. Then check the connection status, run Connectivity Test, and visit a known working target. A connected switch and successful access to a target are different results: the former reflects the local connection state; the latter also depends on the server, remote network, DNS, and routing policy.
If the test fails, disconnect first and confirm that your local network works normally. Then check the selected server and its parameters. To investigate further, note the error message, network type, test target, and current mode, then use Diagnostics and Data to help narrow it down. Conceal passwords, authentication details, and subscription links before sharing information. This preserves useful troubleshooting context while reducing the risk of exposing sensitive data.
Shadowrocket is a closed-source commercial app sold exclusively on the App Store. Check the App Store listing for pricing, system requirements, compatibility, and update history.
Shadow Launch Technology Limited
App ID 932747118
Verify the developer, official icon, and app ID
After searching for Shadowrocket on the App Store, open its product page rather than relying on the name in search results. The developer should be Shadow Launch Technology Limited, the icon should match the official icon shown here, and the product page URL should include app ID 932747118. A similar name does not prove it is the same app. Check the developer, icon, and app ID together before purchasing.
The App Store product name is Shadowrocket. When checking the icon, compare the complete image rather than relying on its blue and purple colors alone. After opening the App Store from this guide, verify the product name and developer—especially when switching devices or reopening the product page from an old bookmark. Always rely on the details shown on the App Store page.
App Store availability and account region
The currency, availability, and purchase prompts shown by the App Store depend on your account's store region. If the app does not appear in search results, open the product page directly, read the store's message, and check your account region and device compatibility. Do not assume that a missing search result means the app is broken, or that a price shown in another region is the price your account will be charged.
Check the App Store listing for system requirements. Before purchasing, expand the compatibility details to confirm that your device qualifies. The App Store controls whether the page shows a purchase button, download button, or purchased status. For account payments, order status, or store verification, follow the steps provided by the system. Server, protocol, and DNS settings in the app do not affect App Store transactions.
One-time purchase and restoring purchases
The US reference price is $2.99 for a one-time purchase. Prices appear in local currency in other storefronts; the amount charged is the one shown on the App Store at checkout. iPhone and iPad can use the same Apple ID purchase record to get the app. Check the App Store listing for compatibility and Universal Purchase availability on other devices. Verify purchase history in the account's purchases rather than judging by whether the app is still on the Home Screen.
When switching devices or reinstalling, first use the original purchasing account in the App Store to find your purchases, then verify the app name and developer. If the page still shows a price, check which purchasing account is signed in and confirm the order history before paying again. Family Sharing availability depends on the App Store listing and account settings; what appears for one account does not necessarily apply to every device or purchase.
Restoring a purchase does not automatically restore all local configuration. After getting the app again, check your existing subscriptions, manually added servers, Config files, and current selections. If you use iCloud sync, verify its conditions and the synced content before testing the connection. Keep a separate copy and change log for rules you have edited. This helps distinguish between restoring the app and restoring your previous setup.
For example, if the App Store confirms your purchase but Home has no server entries, import your existing details instead of reinstalling the app. If an entry is present but the connection times out, check its address, port, authentication details, and network conditions. If a subscription will not update, check whether the link is valid and accessible. These issues are separate from the client's one-time purchase record.
After an update, test before changing settings
App updates are delivered through the App Store. You can manage automatic updates in your device's system settings. For details about changes, rely on the update history on the store page and the settings currently shown in the app, not a fixed version number on the home page. Before updating, keep a copy of any Config you edited and other essential details. After updating, check your servers, Global Routing, On Demand, and system VPN configuration, then test a target you use regularly.
If something goes wrong after an update, note where the problem occurs: the switch will not turn on, a subscription cannot be read, one target is inaccessible, or all requests fail. Keep one set of existing parameters for comparison and change one thing at a time; this usually makes the cause easier to find than deleting everything and starting over. Read the Troubleshooting Guide for symptom-based help, or see Frequently Asked Questions for quick answers about purchases and first launch.
Technical notes
Find step-by-step help for specific issues: verify your purchase and configuration, then use tests and traffic readings to investigate connection problems.
Break slow speeds down into four layers—server, network route, protocol, and local network—with comparison tests you can run on iPhone or iPad to identify the bottleneck by elimination.
Learn what upload and download readings grouped by server and app mean on the Data page, how usage is measured and reset, and how to use these readings to check whether traffic is routed as expected.
Follow the full process: find Shadowrocket on the App Store, verify the developer and icon, complete the one-time purchase, download the app, and open it for the first time. Also learn how to restore purchases and turn on automatic updates.