Available exclusively on the App StoreOne-time purchaseGlobal RoutingConfiguration files & rule-based routing
Shadowrocket features and settings
First, distinguish connection methods, server details, and configuration files; then adjust individual settings. The examples below explain features and are not complete, ready-to-use configurations.
Three Global Routing modes
In Home > Global Routing, Config routes traffic according to the rules in the active configuration; Proxy sends traffic through a proxy; Direct sends traffic directly. To use rule-based routing, make sure the intended file is selected in Config, then choose Config. Changing modes does not fill in server details or replace connection testing. To troubleshoot, compare the same destination across modes, changing one setting at a time so you can distinguish rule issues from server issues.
Global Routing
Config / Proxy / Direct
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,10.0.0.0/8,DIRECT
FINAL,PROXY
Config uses the rules in the active configuration; rule order affects matching.
On Demand connections
On Demand starts connections when configured network conditions are met. Find its settings in Settings. Before using it, establish a manual connection to confirm the server, rules, and system permissions are working, then add trigger conditions one at a time. When setting Wi-Fi conditions, check the network name; after switching to cellular, confirm the behavior is as expected. If the connection resumes after you disconnect manually, check the On Demand triggers instead of repeatedly deleting the configuration. On Demand controls when to connect; it does not determine whether a subscription is valid.
Settings
On Demand
Wi-Fi
Test a manual connection first, then check the automatic triggers.
Choose a protocol based on the details you have
Shadowrocket supports protocols including Shadowsocks, VMess, VLESS, Trojan, and Hysteria2. To add a server manually, start with Type in Add Server and enter the address, port, and authentication details from your existing server information. Required fields vary by protocol. Do not assume similarly named fields are interchangeable; check the transport, TLS, and server name in particular. After importing, make sure all details are present. A protocol describes the connection format, not its latency or real-world access performance, so the protocol name alone cannot tell you how well a connection will work.
Add Server
Type
Host
Port
Shadowsocks / VMess / VLESS
Trojan / Hysteria2 / WireGuard
Match Type to the server configuration and check the other fields against your existing details.
Import and update subscriptions with Subscribe
If you already have a subscription, use Subscribe to import its server list, or use Scan QR Code to add an individual server from your existing details. Before importing, make sure the link is complete. Afterwards, check the groups, server count, and protocol fields, then select a default server. Updating a subscription fetches the remote list again; it does not extend the service period. If an update fails, first check whether your current network can reach the subscription URL. Subscription links may contain access credentials, so do not include them in public screenshots or logs. This site explains how to use subscriptions but does not provide, sell, or recommend them.
Subscribe
Add Server
Scan QR Code
Import from Cloud JSON
Use a subscription or server details you already have, then test the connection after importing.
Manage configuration files in Config
Configuration files in Config organize content such as General and Rule; check server lists and configuration files separately. Before editing, keep a working copy and make sure you have selected the active file, not one that is unused. Rules are evaluated from top to bottom; put specific conditions before broader ones and reserve FINAL for the last match. If you use iCloud sync, also check your system account and the available in-app settings. Restoring a purchase does not restore configuration. Verify the setup on one device before checking the file contents on another.
[General]
dns-server = system
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
FINAL,PROXY
This example explains the structure; adapt the actual rules to your needs and current configuration.
Connectivity Test & Data
After connecting, run Connectivity Test, then check the destinations you actually need to reach. Test results reflect the conditions of that specific test and do not mean every website is accessible. Use Data to monitor traffic changes and Diagnostics in Settings for further troubleshooting. When something goes wrong, note the selected server, Global Routing mode, active configuration, and destination that failed; then check DNS and rule matches. Before sharing diagnostic information, remove subscription URLs, authentication details, and other personal data. Keep only what is necessary to describe the issue.
Home
Connectivity Test
Data
Settings
Diagnostics
Check the connection toggle, test results, and actual access separately.
Think of the setup in three layers: server details determine where you connect, Global Routing and configuration files determine how traffic is handled, and On Demand determines when a connection starts. These layers are related, but none can replace another. Importing rules without a working server, or adding a server without checking the routing mode, is not enough to confirm that the setup is correct.
For your first setup, keep things simple: import your own details, select a server, check the current mode, and turn on the connection. Once it works, adjust rules, DNS, and On Demand gradually. Keep the last working setup before each change so you can return to a verified starting point if something goes wrong. See the first connection guide for the full sequence, and the complete manual for more on rules and settings.
Getting Shadowrocket on iPhone and iPad
The App Store is the only place to get Shadowrocket. Verify the app first, then check your purchase account and device compatibility. Always refer to the App Store listing for system requirements.
iPhone
Purchase and get the app from its App Store product page. On first launch, add your own server details. When you connect for the first time, iOS may ask permission to add a VPN configuration. Check which app made the request before confirming.
Use the same Apple ID you used to purchase the app, and check the purchase status and Get button in the App Store. Refer to the App Store listing for Universal Purchase availability on iPhone and iPad. After getting the app, check the server details and configuration on your device.
Confirm first-time authorization and connection separately
VPN configuration permission allows the app to establish a VPN connection; it does not verify the server. After granting permission, return to Home, check the selected server and connection toggle, then run Connectivity Test. If no system prompt appears, first check whether the configuration already exists. The prompt's presence or absence alone does not confirm whether setup is complete. If device management policies restrict changes, follow your organization's requirements instead of repeatedly changing unrelated system settings.
When following the guide on iPad, look for interface labels such as Home, Config, Data, and Settings rather than relying on the exact position of buttons in screenshots. The layout may vary with screen size and app state, but the goals remain the same: check the server, select a mode, and test the connection. After moving to another device, check again that the default server is selected; do not assume the selection transferred completely.
Keep working details before switching devices
Your app purchase history, subscription details, and local configuration are separate types of information. Before switching devices or getting the app again, make sure you can still obtain your subscription or server details from your provider, and keep any configuration files you need. After restoring the app, check everything in order: import, select, connect, and test. If you use sync, check the sync results before importing again to avoid duplicate subscriptions that could lead you to select the wrong server or update the wrong group.
Shadowrocket is a closed-source commercial app. Use the App Store listing to verify purchase details and the options visible in the app for usage instructions.
Three ways to verify the app
DeveloperShadow Launch Technology Limited
App ID932747118
IconCheck the official App Store icon
The name in search results is only a way to find the app. Open its product page and check the developer, official icon, and app ID in the product page URL before purchasing.
Check the product page, not just the search result
Shadowrocket may appear under similar names, descriptions, or icons in search results. Open the product page and verify the developer is Shadow Launch Technology Limited and the URL contains id932747118. Check that the icon matches the official icon shown in this site’s header. Verify all three details before purchasing rather than relying on the name alone.
Even if you open the App Store from this site's availability guide, make your final check on the product page shown by the system. Before purchasing, review the price, compatibility, and app description to make sure it is the right product, then follow the App Store payment process. This official manual provides verification steps and usage instructions; purchases are completed in the store. Check orders, charges, and purchase history in your own Apple account.
App Store availability and account region
Whether an App Store page is visible, the currency shown, and available payment methods depend on your account's store region. Being able to view a product page in a browser does not mean the signed-in account can purchase the app. If the page will not open or the Get button is unavailable, check your network, App Store sign-in status, and account region, then review any message on the page. Do not mistake an App Store access issue for a Shadowrocket connection problem or try to resolve an account issue by changing proxy rules.
Refer to the App Store listing for system requirements, device compatibility, and Universal Purchase availability. Before purchasing, check the compatibility section on the device you plan to use. If you intend to use the app on multiple devices, confirm each one separately. This manual does not specify a fixed minimum system version, since App Store requirements can change. Checking the current listing is more reliable than relying on an old screenshot.
Understand the one-time purchase separately from server service
Shadowrocket is a one-time purchase. The US App Store price is $2.99; the current price and billing currency are shown on the App Store listing. The purchase covers use of the client to import, manage, and use server details you already have. Protocol support, rule handling, and diagnostic tools are client features. Server addresses, authentication details, and service validity must be checked with your existing provider; they are not included in the app purchase.
If a subscription expires, server authentication fails, or traffic allowance changes, check the status of your existing service rather than purchasing the client again. Conversely, an active subscription does not guarantee that the current client rules and permissions are correct. First determine whether the issue concerns purchasing the app, importing details, or connecting, then go to the relevant section to avoid changing settings across multiple screens unnecessarily.
Get the app again and restore purchases with the same account
If you have already purchased Shadowrocket, before getting it again make sure the App Store is signed in with the Apple ID used for the purchase, then look for Shadowrocket in your purchased apps. Check the app ID on the product page and its purchase status before proceeding with the button shown in the store. If the page still displays a price, check your purchase history and current account before paying again. Refer to the App Store listing for Family Sharing availability and requirements.
Confirm app eligibility and restoration of in-app data separately on iPhone and iPad. Even if the App Store recognizes your purchase, after reinstalling you may still need to import your subscription again, restore configuration files, and select a default server. Once restored, test the connection using details you know work before enabling On Demand or adjusting complex rules. If something goes wrong, this makes it easier to tell a data restoration issue from an automatic connection setting.
App updates and routine maintenance
Update the app through the App Store. Before updating, review the store's release notes; afterwards, check commonly used sections in Home, Config, and Settings. If the interface changes, do not immediately rebuild your subscriptions and rules. First check the feature names and current settings, then decide whether anything needs to change. Keep a rollback copy of your active configuration. Before changing DNS, rule order, or FINAL handling, make sure you know what was working previously.
Routine maintenance does not mean testing every server repeatedly. First check whether the subscription updated successfully and whether the selected server is still listed, then review traffic in Data and test actual access. A latency figure reflects a specific test condition and should not be treated as a verdict on all connections. If one destination fails while others work, check its rule and DNS first. If all destinations fail at once, start with your network and server details.
Quick answers to common questions
The connection toggle is on. Why do I still need to test?
The toggle shows the current connection state; it does not confirm that a destination is reachable. Run Connectivity Test and try the destinations you actually need to access, then troubleshoot using the current server, Global Routing mode, and configuration file. See Quick Reference for interface terms.
Do I need to select a server again after updating a subscription?
After an update, check that the previously selected server is still there and whether its name, settings, or group have changed, then confirm your default selection. Updating the list does not test the connection; retest especially if a server entry was replaced. See Quick Reference to understand the difference between Subscribe and Config.
Why hasn't my traffic route changed after editing the rules?
First make sure Global Routing is set to Config and that you edited the active file. Then check the rule order: a broader condition earlier in the list may match first. Finally, review how FINAL is handled. See Quick Reference for rule keyword definitions, and change one condition at a time.
Connections, DNS, and first-time setup
Break a full setup into individual questions: identify the issue you're seeing, then read the relevant guide. The articles below are listed by topic, not by a fixed version or publication date.
When choosing from servers in a subscription you already have, first check that the details are complete and the connection works, then compare latency tests, regions, and protocol types. This article explains what conditions latency figures actually measure and why they cannot replace real-world tests of websites, video, and other destinations. For a useful comparison, keep the destination and mode the same.
For your first connection, follow this order: select a server, grant system permission, and test the connection. In Home, confirm that the default server is selected, turn on the connection toggle at the top, and check the system request to add a VPN configuration. This guide lists what to check at each step and where things can fail, so you can distinguish a successful import, an enabled toggle, and actual access.
DNS settings affect how domain names are resolved, so whether one webpage opens is not enough to determine if a configuration is suitable. Starting with the dns-server syntax, this article explains system DNS, custom DNS, and DNS over HTTPS, and how to check resolution and connectivity separately after making a change. Keep the original configuration and change one setting at a time while testing.