A rule-based proxy client for iPhone / iPad, with rule-based routing. The app is a one-time purchase on the App Store; you’ll need your own existing subscription or server details to connect.
Screenshot unavailable; Home includes the connection controls, Global Routing, and server management.
Get Shadowrocket for iPhone and iPad:Verify the App Store listing before you buy and install
iPhone
Check the app name, developer, and icon on the App Store listing, then confirm device compatibility and the current price. After installing, open Home and have your existing server details ready. Check the App Store listing for system requirements.
Check your purchase history using the Apple ID used for the purchase, then download according to the status shown in the App Store. iPhone and iPad may share a purchase; check the App Store listing for purchase eligibility. App settings still need to be checked on each device.
Shadowrocket is also available on Mac and Apple TV through the same App Store. Check the App Store listing for compatibility, system requirements, and purchase eligibility.
Routing rules choose how requests are handled based on their characteristics. Before using them, select a Config in Global Routing and confirm which configuration file is active. Rules are usually matched in order, so more specific entries should be distinguished from fallback rules. Keep a recoverable copy before editing. The syntax below illustrates matching behavior; example.com is a sample domain, and actual connections for PROXY depend on your existing server. After making changes, check request logs to confirm which rules matched rather than relying only on the connection toggle.
Config handles requests according to the rules in the current configuration. Proxy sends eligible traffic through the selected proxy; Direct uses a direct connection. Scene switches behavior based on configured scenarios and is not another protocol. Before your first test, decide what you want to check and choose the relevant option. When troubleshooting rules, keep the server unchanged; when troubleshooting the server, keep the test target consistent. This makes it easier to identify the cause instead of changing several settings at once.
On Demand starts connections when specified conditions are met. Set it up only after confirming that a manual connection works. Find the relevant option in Settings, check its trigger conditions, and observe what happens when the network changes. If the connection starts again after you turn off the toggle, check the On Demand settings too instead of repeatedly deleting the configuration. On Demand controls when a connection is attempted; it does not handle server authentication or fix an incorrect address, port, or password. To narrow down a problem, temporarily disable the relevant conditions.
To add an existing server, first choose the matching protocol under Type in Add Server, then enter the corresponding details. Shadowsocks, VMess, VLESS, Trojan, Hysteria2, and WireGuard use different fields; changing only the address does not make a configuration interchangeable. Check transport and TLS options against the original details as well. The protocol name specifies the connection method, but does not confirm that the server is currently available. After saving, select the server and test the connection.
Use your own existing subscription or server details. Import and save them through Subscribe or Add Server. After updating a subscription, check the group name, entry changes, and current selection; a successful download does not mean the connection works. QR codes, the clipboard, and manual entry are simply different ways to add details. After importing, verify the protocol and key fields. Subscription URLs may contain access credentials, so hide them in screenshots or notes before sharing. Before organizing multiple subscriptions, distinguish subscription entries from manually added ones.
For your first connection, select the default server, turn on the connection toggle, and allow the VPN configuration when prompted by the system. Then run Connectivity Test. Results reflect the selected method and network conditions at that time; they do not verify access from every app. Data can help show traffic activity, but traffic records do not mean every request succeeded. If something goes wrong, check the local network, server details, Global Routing, and configuration rules in order. Change one thing at a time and test again.
App Store purchase and listing details:Use the store listing and in-app settings as your reference
App ID 932747118
One-time purchase
Closed-source commercial app
Developer, official icon, and App ID
After finding the app, open its product page rather than relying on similar names in search results. Verify that the developer is Shadow Launch Technology Limited, that the icon matches the official icon shown on this site, and that the product URL contains App ID 932747118. Check all three together; a name, screenshot, or description alone is not enough to verify the listing.
Shadowrocket is a closed-source commercial app. Check the App Store product page for purchase options, compatibility, the app description, and update history. As the official website and manual, this site explains what to check and in what order. If the store listing differs from this guide, follow the current listing to confirm what applies before purchasing.
Whether the product page is available for purchase, which currency it displays, and which payment methods are available depend on your Apple ID’s App Store region and account status. If you can’t find the app or complete a payment, check the App Store message and your account’s store region first. An empty search result does not necessarily mean there’s a problem with your device settings, and it is not a reason to change saved server details.
The US storefront lists the app for about $2.99 as a one-time purchase. Other storefronts display local currency; the amount on the payment confirmation screen is final. Check the App Store listing for system requirements. Before purchasing, confirm that your device meets the requirements and remember that the app is a client tool; connecting still requires your own valid service details.
When switching devices or reinstalling, use the Apple ID from the original purchase and check the download status under Purchased or on the product page in the App Store. If the price still appears, check your account and purchase history before proceeding. Refer to the App Store listing for purchase eligibility on iPhone and iPad, compatibility with other devices, and Family Sharing.
Restoring the app and restoring its configuration are separate tasks. After downloading it again, check that your servers, subscriptions, and Config are all present; don’t assume all data has been restored. If you use iCloud-related sync features, check the actual settings and device account in Settings. Sync status is not a substitute for a separate backup. Before deleting anything from the old device, verify the needed settings on the new device and test the connection.
What the purchase covers, service details, and updates
The app purchase does not include a service plan. Buying Shadowrocket gives you the app; it does not create a connectable server or extend an existing subscription. This site does not provide, sell, or recommend servers or subscriptions. The import, update, and testing steps in this guide assume you already have your own subscription or server details.
App updates are delivered through the App Store, where you can read the release notes. Subscription updates refresh server details for an existing service; Config updates change configuration content. They affect different things. If a connection fails, first determine whether the issue involves app installation, entering server details, or the connection itself. Then consult the relevant section rather than treating repurchasing the app as a general troubleshooting step.
Common settings questions: identify what you’re changing first
Why select a server after importing one?
Importing adds details to the list; you still need to select which server to use for the connection. Check the selection indicator in Home, then confirm the connection toggle and Global Routing. If a subscription update changes the entries, check that the current selection is still the one you want. See the glossary for in-app terms.
When should I choose Config or Proxy?
Choose Config to route traffic according to configuration rules. To check the selected proxy’s connection behavior, choose Proxy if it suits your test. Neither is a protocol or fills in missing server details. Decide what you’re testing, then keep other conditions consistent. For detailed steps, see the Global Routing guide.
Does a latency test result mean every connection is working?
No. Results depend on the test method, target, and network conditions at the time. Run Connectivity Test as well, and verify the requests you actually need to use. If some requests fail, check which rules matched and review the related settings. See connection and diagnostics terms for explanations of test metrics.
What should I keep before organizing subscriptions?
First identify your subscription groups, manually added servers, current Config, and recovery method. Don’t delete entries in bulk until you’ve verified your backup. Store URLs and configurations containing credentials securely, and hide sensitive fields when sharing troubleshooting details. See the server management guide for the recommended order.
Shadowrocket guides:More on purchases, setup, and troubleshooting
Start with an App Store search, then verify the developer, official icon, and App ID before reviewing the purchase confirmation screen. For anyone who hasn’t purchased the app yet and wants to understand how to verify the listing.
Use your existing server details to check the network, test results, address and port, authentication, transport, and TLS settings one at a time. Change one factor per test and record the result.
Answers to common questions about the connection toggle, VPN status, Global Routing, subscription updates, and configuration sync. Identify what you’re changing, then check the relevant setting in the app.