Shadowrocket
FAQ
Find the step where the problem occurs, then check each item in order.
For purchases, check your App Store history. For imports, check the link and format. For connections, check the server and rules. Expand a question below for an answer, or go to Getting Started for a step-by-step walkthrough.
Verify and purchase
Check the storefront and purchase history before troubleshooting payment or restoring a download.
Read the App Store guideCan’t find Shadowrocket in the App Store? Check this first.
First check which App Store storefront is associated with the Apple ID used for purchases—not just your device language or location. In Settings, go to Apple Account → Media & Purchases → View Account → Country/Region to check the current storefront, then open the product page from this site’s app page. Availability depends on the storefront. If you need to change your region, follow Apple’s official steps on that page and check any balance, subscription, and payment method requirements first. Don’t keep switching regions to try to find the app.
How can I tell whether the Shadowrocket listing is genuine?
Check the app name, developer, icon, and product page address. The developer should be Shadow Launch Technology Limited, the app ID should be 932747118, and the address should include id932747118. The icon should match the official icon shown on this site. Don’t rely on nicknames or similar names alone. Verify the listing from the app page, then check the price, compatibility, and purchase confirmation in the App Store. Refer to the App Store listing for system requirements.
Does buying the app mean I can connect to a proxy right away?
Buying the app alone doesn’t provide a working proxy connection. A one-time app purchase is not a service plan; you’ll need your own subscription or server details before connecting. Shadowrocket is a closed-source commercial app, and the purchase covers use of the client. The US storefront price is around $2.99; the actual price and local currency are shown on the App Store purchase page. This site does not provide, sell, or recommend servers or subscriptions. It explains how to import and configure information you already have.
Do I need to buy Shadowrocket again after changing devices or reinstalling it?
Sign in to the App Store with the Apple ID used for the original purchase. Find Shadowrocket in your account’s apps or purchased items, then tap the redownload button. If a price appears, stop before confirming payment and check the signed-in account, purchase history, and current storefront. A purchase made with another account won’t appear as a purchase on this one. Redownloading the app doesn’t restore every setting, so also check your existing subscription, server details, and backups before connecting.
Installation and first launch
Treat app installation, system authorization, and connection status as separate steps; there’s no need to change every setting at once.
Connect for the first time, step by stepCan I install it on iPad, and what should I know the first time I open it?
Check iPad compatibility on the same App Store product page. Refer to the listing for system requirements. If the same Apple ID already has a purchase, find the app in Purchased and download it rather than paying again. After opening the app, import your own subscription or server details before trying to connect. If iPadOS asks to add a VPN configuration, make sure the prompt was triggered by the action you just took. The iPad layout may differ in landscape or Split View; look for interface labels such as Home and Config.
What if the connection switch on Home won’t turn on or immediately turns off?
First make sure a server is selected, and watch for a system prompt to authorize adding a VPN configuration. The connection won’t work until you grant permission. If the switch turns off immediately, note the exact message, check the VPN configuration status in Settings, and temporarily disconnect any other active VPN before trying again. On a managed device, check whether restrictions are in place. Don’t start by deleting the app or clearing all configurations. Keep your current settings and check one variable at a time.
The interface is in English. Where should I start with Home, Config, Data, and Settings?
Start on Home: select a server, check Global Routing, and use the connection switch. Config manages configuration files, Data shows traffic and request-related records, and Settings contains app preferences. This guide keeps the interface labels in English so you can match them directly; you don’t need to understand every setting before connecting for the first time. Note that Config can refer to either the configuration file screen or a Global Routing mode. Use the page context rather than relying on the label alone.
Should I turn off On Demand if background battery use increases?
First check battery usage for the same time period in Settings, then consider whether the increase might be related to a persistent connection, frequent reconnects, or heavy traffic. On Demand starts connections when its configured conditions are met. If a connection resumes after you stop it manually, review those conditions and consider turning On Demand off temporarily to observe the result. Keep the network and usage period consistent when comparing, and change one setting at a time. Turning off On Demand doesn’t stop an active connection or guarantee lower battery use.
Subscription and server import
These steps assume you already have your own subscription or server details.
Learn about Subscribe and protocol termsWhere do I enter an existing subscription link?
On Home, open Add Server and set Type to Subscribe. Enter the full subscription link from your provider in the URL field, then save. Don’t enter it in a single server’s address field or use an ordinary webpage address as a subscription link. After saving, check that the expected server entries appear, then select one to test. Subscription links may contain personal access credentials. Keep query parameters when copying, but don’t share the full link in screenshots, logs, or discussions.
A subscription import failed. What should I check, and in what order?
First confirm that Type is set to Subscribe. Check that the link is complete, with no line breaks, extra spaces, or missing query parameters. Then make sure the current network can reach the subscription URL. Use the error to distinguish a fetch failure from a parsing failure: being able to open a webpage doesn’t mean its response is a valid subscription. Finally, ask your provider to confirm that the link is valid and the content format is supported. Keep any working configurations; don’t repeatedly delete the entire subscription group just to retry.
When should I update a subscription, and what should I check afterward?
If your provider changes server details or an existing entry stops working, find the subscription on Home and use its update action to fetch the latest content. The exact location may vary in the current app interface. A successful update only means the subscription content was retrieved; it doesn’t guarantee every server can connect. Check that the server you want is still listed, then run Connectivity Test and verify access in practice. Updating a subscription is separate from updating the app through the App Store; one doesn’t replace the other.
How do I add a server if I only have its details or a QR code, not a subscription link?
Choose the entry method that matches the information you have. To add a server manually, open Add Server, choose the matching Type, and enter the address, port, authentication details, and any other fields required by that protocol. If you have a QR code for the server, use Scan QR Code. Protocols such as Shadowsocks, VMess, VLESS, and Trojan use different fields; don’t assume they’re interchangeable. Before saving, compare each field with the original details, including TLS, transport, and server name settings. If anything is unclear, check with your provider.
Routing and troubleshooting
Check connection status and request success separately; the switch alone doesn’t tell the whole story.
Learn about routing and diagnostic toolsThe app says it’s connected, but webpages won’t load. What should I do?
An active connection switch only confirms that the system connection is established; it doesn’t guarantee that a request will succeed. First make sure the device can reach the internet with the connection off, then check Connectivity Test for the selected server. Next, review Global Routing, the active Config, and the policy matched by the failed request to distinguish an unreachable server from a rule mismatch or DNS issue. Change one setting at a time and retest the same destination. If only a few addresses fail, don’t clear all configurations.
Which Global Routing mode should I use: Config, Proxy, or Direct?
Config follows the rules in the active configuration file to route requests. Proxy sends requests the app can handle through the selected proxy. Direct connects to the destination without a proxy. For rule-based routing, make sure the right configuration is enabled before choosing Config. While troubleshooting, you can briefly switch to Proxy or Direct and compare the result for the same destination, but note the original mode and restore it afterward. Global Routing can’t fix incorrect server details or fill in missing rules.
If routing doesn’t work as expected in Config, which rules should I check first?
In Config, first confirm which configuration file is active, then check its [Rule] section and rule order. DOMAIN-SUFFIX matches domain suffixes, IP-CIDR matches address ranges, and FINAL handles requests that didn’t match earlier rules. A broad rule placed too early may prevent later rules from matching. Check request records in Data, if available, to see which policy actually applied; don’t infer the result from the rule text alone. Keep a copy of the original configuration, then retest the same request after making a change and confirm whether it goes to PROXY, DIRECT, or REJECT.
Does a Connectivity Test timeout mean the server is down?
Don’t draw conclusions from a single timeout. Results depend on the current network, test method, and server response. Retest on a stable network, then check that the address, port, authentication details, protocol, and TLS settings match the original information. If you see an authentication or handshake error, also check that the device’s date and time are correct. If the test fails only on one network, keep the comparison results. If it keeps failing, share the error type and checks you’ve completed with your provider, but hide passwords and subscription credentials.