A rule-based proxy client for iPhone / iPad. First verify the official App Store listing and one-time purchase, then import an existing subscription, set up routing rules and test the connection.
Shadowrocket is available only through the App Store on Apple platforms. Before purchasing, check the store listing for compatibility, price and purchase terms. Refer to the App Store listing for system requirements. If the app is already installed, you can follow the guides to check your existing setup without deleting the app just to start over.
iPhone
Purchase and install Shadowrocket from its App Store product page. When you open it for the first time, add your existing server details. If iOS asks to add a VPN configuration, confirm the request is from Shadowrocket and follow the prompts to authorize it. Authorization adds a system connection profile; whether the connection works still depends on the server details, network and current routing settings.
Use the same Apple ID to view your purchase history, then open the same product page to check the download status. iPhone and iPad may share a purchase; refer to the App Store listing for details about universal purchase. A purchase record and in-app settings are separate: after restoring the app, check your servers, subscriptions and currently selected Config.
Server details determine which server you connect to, Global Routing controls how requests are handled, and Config determines how rules match. Understand these three layers before changing settings, so you have a clear basis for comparison when troubleshooting.
Request handling
Global Routing and rule order
Open Global Routing from Home. Config applies rules from the active config, Proxy uses the current proxy policy, and Direct handles requests as direct connections. To route requests by domain or IP range, make sure Config is selected and check which config file is active. Rules are generally matched in order: a broad rule near the top can take precedence over a more specific rule below. After making changes, test the relevant request rather than relying on the connection toggle alone. The example below shows syntax; it is not a complete config for every network.
On Demand can trigger connections based on configured conditions. Review its options in Settings. First select a server manually, connect and run a test; then configure automatic triggers. This helps distinguish server issues from trigger-condition issues. After making changes, test on networks where the connection should and should not activate. Don't judge by the toggle's appearance alone. If the connection comes back after disconnecting, check On Demand and the system VPN status before changing conditions, so you don't repeatedly remove server details you've already verified.
Shadowrocket supports protocols including Shadowsocks, VMess, VLESS, Trojan, HTTP, SOCKS5, WireGuard and Hysteria2. When adding a server, choose Type based on the server details you already have, then check Host, Port and the relevant authentication fields. Fields aren't interchangeable between protocols. Transport and TLS settings must also match the server; don't infer them from the protocol name alone. Get server details from your service provider. If you import a link, verify the type and address after saving—successful format recognition doesn't mean the connection is ready to use.
Subscribe reads and maintains a server list from an existing URL; get the subscription link from your service provider. After importing, make sure the server entries appear in the list, then select one and test the connection. Updating a subscription fetches its contents again, so entry names, counts or settings may change. Check the selected server after each update. A successful subscription update only means the content was retrieved; it doesn't confirm that every server can connect. Links may contain private access credentials, so hide the full URL when troubleshooting and never include credential-bearing links in public screenshots.
A Config file can include settings such as General, Rule and Hosts. Server subscriptions and rule configs serve different purposes; importing one doesn't mean the other is ready. Before editing, keep a copy of the original and check which config is active. After adding rules, make sure Global Routing is set to Config. If you use iCloud sync, verify the files and selected config on the destination device; a visible file doesn't mean the connection is ready. Understand the effect of certificate or request-rewriting settings before enabling them.
Connectivity Test checks whether its test target is reachable, while Data helps you observe actual traffic. They serve different purposes. First check the selected server and connection status, then run a test and visit the destination you actually need. If the test succeeds but a specific request fails, check the rules, DNS and destination service. If the test fails, check the server details and current network first. When reading Data, note the reporting scope and start time. A single reading can't prove that all requests used the same policy; check Diagnostics as needed.
Home → Connectivity Test
Data
Settings → Diagnostics
These steps assume you already have your own server details or subscription. For your first setup, establish one connection path you can test. Avoid changing the protocol, rules and DNS all at once; check the result after each step so it's easier to return to a known working state if something goes wrong.
Step 01
Add Server: Save existing details
Get server details or a subscription link from your service provider. In Add Server, choose the matching Type and enter the supplied details. If you use Scan QR Code, make sure the code comes from information you own, then check the imported details after saving. Once a subscription is imported, you should see individual entries in the SERVER list—not just a subscription name.
When entering details manually, make sure the address, port, authentication, transport and TLS settings all match. Fixing one field doesn't replace checking the rest. If an import fails, first confirm that the content is complete and the type matches. Don't try to fix it by repeatedly adding the same entry.
Step 02
Global Routing: Choose how requests are handled
Select the server you plan to use in the SERVER list, then open Global Routing. For everyday rule-based routing, choose Config and make sure an active config is available. Proxy and Direct help explain different routing modes, but switching modes won't fix incorrect server details or add missing rules.
For your first session, note the current mode and config name. If a destination behaves differently later, you can compare the conditions before and after a change. In the rule example, example.com is only there to illustrate syntax. Use your own needs to determine the matching scope; don't assume copying the whole example will cover every request.
Step 03
Connectivity Test: Check the result
Turn on the connection toggle at the top of Home. The first time you connect, follow the system prompt to allow a VPN configuration. After authorization, check the connection status in the app and run Connectivity Test. Then visit the destination you actually need and check Data for the corresponding traffic. The connection status, test result and actual request together help verify the setup.
If a test fails, check the current network, server details and routing mode in that order, changing only one condition at a time. One failed destination doesn't mean every connection is failing; likewise, a passing test doesn't mean every destination will work. Keep the error message text for troubleshooting, and hide server credentials and subscription URLs when sharing details.
Connected, but unsure whether the rules are working? Check how the same destination is handled by the active config, then review the matching rule and traffic records. An enabled toggle alone doesn't confirm that routing is correct. The full tutorial walks through first-time authorization, selecting an entry and troubleshooting failures.
Verify the app, then separate purchase from connectivity
Shadowrocket is a closed-source commercial app, and this is its official website and manual. Verify the genuine app through its App Store product page. The purchase covers the client app; server details, subscription content and network status need to be checked separately. Search for Shadowrocket by its product name and App ID.
Developer Shadow Launch Technology Limited
App ID 932747118
Purchase One-time purchase
Verify the developer, icon and App ID
Open the App Store product page from the download guide. Check the app name, Shadowrocket, the developer, Shadow Launch Technology Limited, and that the product URL contains id932747118. The app icon should match the official icon shown in this site's header. A name or similar-looking icon in search results isn't enough to confirm the app; check all three details together.
Once verified, review compatibility and purchase details in the store listing. The displayed language, currency and availability may vary by storefront, but the App ID is a key way to identify the same product. If the page won't open or the app doesn't appear in search, check your App Store storefront and account status first. Don't treat another app with a similar name in search results as an alternative.
The app purchase does not include a server plan. The U.S. storefront price is about $2.99; other storefronts show local currency. Check the App Store listing for the current price, taxes and purchase terms. After buying the app, you'll still need your existing server details or subscription. Get subscription links from your service provider.
This site does not provide, sell or recommend servers or subscriptions. App purchase records are managed by the App Store; check the validity of an existing subscription and server status against your service details. If a connection fails, first distinguish between whether the app is installed and whether the server is available. Buying the app again is not a connection-recovery step.
You can use the purchase record for the same Apple ID on iPhone and iPad; refer to the App Store listing for universal purchase terms. Before changing devices or reinstalling, confirm which account you use for App Store purchases and whether your existing config is backed up separately. Restoring the app and restoring its in-app data are different things. Check each item after the app is back on your device.
Find purchased apps in your App Store account, then open the Shadowrocket product page to check its download status. If the page shows a purchase price again, check the account and purchase history before deciding what to do next. Family Sharing terms depend on the App Store listing; don't assume the current account has purchase access just because the app is installed on another device.
Update the app through the App Store. The store listing is where to check compatibility, system requirements and update history. Before updating, keep a copy of a working config. Afterward, check the selected server, Global Routing and connection status. The interface may change, so look for settings by their English names rather than relying only on button locations in older images.
Subscription updates and app updates are separate: the former retrieves a list from your service provider; the latter updates the client itself. If you use iCloud to sync related content, check the actual files, selection and connection permissions on each device. Keep a known working baseline. After changes to rules, subscriptions or system networking, test each separately instead of resetting everything at once.
These three articles cover server types, what the app purchase includes and how to read traffic statistics. For initial setup, follow the tutorial first. Look up a topic when you need to understand a particular setting, rather than introducing too many changes during a single connection test.
An overview of protocol transport features and what to enter in Add Server. Learn how Type relates to authentication fields, then check the details against your existing server information. The protocol name alone isn't a complete configuration.
Explains the price shown in the store, what the one-time purchase covers and how the app purchase differs from an existing service. Check the App Store listing for purchase terms and in-app purchases.
Learn how to read upload and download totals from different views. Observe traffic while making actual requests, and distinguish between traffic being generated and requests being routed as expected.