Official Manual / FAQ

Shadowrocket FAQ

Browse answers by topic: purchases, first launch, importing existing configurations, and connection troubleshooting. Identify where the issue occurs, then check one thing at a time and keep test results for comparison.

App Store / Purchase

Verify and purchase

Check the product page, purchase account, and compatibility before troubleshooting purchase restoration across devices.

Can’t find Shadowrocket in the App Store? What to check first

Open the App Store product page from the Get the App page to rule out search terms or results. If the app is unavailable in your region, check the country or region for the Apple ID used for Media & Purchases. Then review Content & Privacy Restrictions in Screen Time and make sure the app’s age rating isn’t restricted. To change your region, follow the official path in Settings: Apple ID → Media & Purchases → View Account → Country/Region. Resolve any balance, subscription, or payment requirements first. Availability depends on what the App Store currently shows.

How can I verify that I’m viewing the genuine Shadowrocket product page?

Check the product name, Shadowrocket, the developer, Shadow Launch Technology Limited, and app ID 932747118 in the product page URL. Compare the listing with the official app icon shown in this site’s header. Similar names or icons alone aren’t enough to verify an app. Before purchasing, review compatibility, price, and purchase terms to make sure they apply to your device and account. Shadowrocket is a paid, closed-source app available exclusively on the App Store. See the Get the App page for verification steps.

Can I connect right after buying Shadowrocket?

A one-time app purchase isn’t a service plan. Buying Shadowrocket gives you access to the app; it doesn’t provide server details or set up a connection. The steps that follow assume you already have your own subscription or server details: verify the source and that they’re valid, then import them, select a default server, and approve the system prompt. This site does not provide, sell, or recommend servers, subscriptions, or related services. Check the App Store listing for the app’s price and purchase terms. Confirm separately that the configuration you plan to use is still valid.

Do I need to buy Shadowrocket again after changing or restoring my device?

First, make sure the App Store account used for Media & Purchases is the account that originally bought the app. Then find Shadowrocket in that account’s Purchased list and check its product page for a redownload option. Your device’s iCloud account may differ from the account used for App Store purchases, so don’t rely only on the name at the top of Settings. If the listing still shows a price, check your purchase history and current App Store region before paying again. Eligibility for use across devices and Family Sharing depends on the App Store listing. Redownloading the app does not restore local configurations.

Can I install Shadowrocket on iPad? How do I check Mac and Apple TV compatibility?

Shadowrocket is primarily used on iPhone and iPad. On iPad, get it from the App Store product page as well. Check the store’s compatibility section for your device and system requirements, then confirm the current purchase account has a purchase record. For Mac, Apple TV, and Apple Vision, check compatibility on the same product page. System requirements and whether a purchase is universal are determined by the App Store listing. Don’t assume availability on one device means it’s available on another. Check your connection configuration and the server’s device-use limits separately.

Home / First Connection

Install and first launch

Check system authorization, server selection, and actual connectivity separately. Don’t treat the switch state as the final result.

Why does Shadowrocket ask to add a VPN configuration on first launch?

This is a system authorization prompt for setting up a network connection. First, verify that you’re using the confirmed Shadowrocket app and already have a usable server configuration. Then allow the system prompt and, if requested, authenticate with your device passcode or biometrics. Successful setup only means the system permits a connection; it doesn’t confirm the server is working or that all traffic will use the same routing policy. Actual traffic routing also depends on Global Routing and Config rules. After authorization, return to Home, select a server, and verify it with Connectivity Test.

What if the Home switch won’t turn on or turns off right away?

Make sure a server is listed on Home and select one as the default. Check for a selected dot beside it. Then verify that system authorization to add a VPN configuration is complete and that no other VPN connection is active on the device. On a work- or school-managed device, check whether management policies restrict VPN use. Stop other connections and try again; note the exact alert or error in Log. Don’t delete every configuration in succession. Only consider adding the system configuration again if you’ve confirmed it’s faulty and backed up your settings.

The interface is in English. Do I need to change my device language?

You don’t need to change your entire device language just to follow a guide. This site uses the English labels shown in the app, such as Home, Add Server, Config, and Settings, so start by looking for those names. To change the display language, check the Shadowrocket app settings in iOS Settings for a language option. Available options depend on what the app and system currently show. Changing the language won’t fill in server details or fix connection problems. If an option differs from the guide, check which screen you’re on and what you’re trying to change, then refer to the settings guide.

How can I tell whether my first connection is working, not just switched on?

Check three things: a default server is selected on Home, the system shows an active connection, and Connectivity Test returns a usable result for its test target. Then visit the page or app you actually need and confirm it works too. An active switch only means that a connection has started or a tunnel has been established; it doesn’t verify access to a specific target. For testing, keep the server, network, and Global Routing mode the same, and avoid changing several variables at once. If only some targets fail, investigate routing rules and DNS before repeating system authorization.

Does keeping a connection active use more battery? How should I set up On Demand?

Battery use depends on actual traffic, Wi-Fi quality, server reconnection frequency, testing, and logging. A connection icon alone can’t tell you how much power the app is using. Compare battery use over similar periods in Settings, then reduce repeated tests and unnecessary detailed Log output. On Demand starts connections based on conditions; it isn’t a fixed battery-saving switch. Before enabling it, make sure manual connections are stable, then configure conditions one at a time. If the connection starts again after you disconnect manually, check whether On Demand is enabled and review its matching conditions.

Subscribe / Add Server / Config

Subscriptions and server imports

The steps below assume you already have your own subscription or server details. Before importing, identify what the content is for. Before updating, keep a recoverable copy of your configuration.

Why can’t I import my subscription? How do I tell a link issue from a format issue?

Make sure you copied the subscription URL from your provider, not an account login page or help page. Check for extra spaces, line breaks, or punctuation. Next, confirm that your current network can reach the URL and that the service is active. If the server returns a login page, an error page, or empty content, the URL won’t work as a subscription even if it opens. If the network connection works but Shadowrocket still can’t recognize the content, ask the original configuration provider to confirm its output format is compatible. Before reporting an error, redact credentials from the full URL and never share the raw subscription link.

Which fields are easiest to get wrong when adding a server manually?

First, make sure Type matches the protocol in your existing server details. Then check the address, port, and authentication fields one by one. Shadowsocks, VMess, VLESS, and Trojan use different fields; don’t enter one protocol’s parameters under another Type. For TLS or transport settings, check the names and paths provided by the server, preserving the original capitalization and characters. Enter the port exactly as provided, and don’t add extra paths to the address field. After saving, select the server and test it. A successful save doesn’t prove the details are correct.

Scan QR Code succeeds, but no usable server appears. What should I do?

A successful scan only means the QR code was read; its contents may not be server details supported by Shadowrocket. Make sure the code comes from a configuration you already have and contains server or subscription details, not an account webpage. If scanning opens a parameter screen, check that Type, address, and authentication fields are complete, then save and look for the new entry on Home. If the code still isn’t recognized, ask the original configuration provider to confirm its format. QR codes may contain credentials, so don’t post the original image publicly. When troubleshooting, share only redacted fields and the error message.

How do I update an existing subscription? What happens if the update fails?

On Home, find the relevant Subscribe group or subscription management option and use its update action. Then check the list and make sure the default server is still valid. The exact controls depend on the current app interface. For automatic updates, review the relevant subscription settings. If an update fails, don’t delete the original group right away. Note the error and check your network, whether the URL is still valid, and the returned content. Whether existing entries remain depends on the update result; seeing a server in the list doesn’t mean it can still connect. See the subscription refresh guide for details.

Are importing a subscription and importing Config the same thing?

No. Subscribe is generally used to manage a collection of server entries and where they’re updated from. Config organizes connection behavior, including rules. Importing one doesn’t mean the other has also been set up. Check what the content is for before choosing an import option. Back up your current Config before replacing it, and make sure its policy references match your actual servers or policy groups. For an unfamiliar configuration, review its rules and DNS settings before replacing a configuration you use every day. After importing, test against the same target so you can identify what changed.

Global Routing / Diagnostics

Rules & Routing and Troubleshooting

Check the basic network first, then the server, and finally the rules and target. Recording test conditions is more useful than repeatedly changing settings.

How do I choose Config, Proxy, or Direct in Global Routing?

Config follows the rules in the currently selected Config and is suited to everyday use when you’ve checked those rules. Proxy routes connections through the selected proxy and can help confirm whether the selected server works during troubleshooting. Direct connects to the target without a proxy and can help check basic access on your current network. These are different routing choices, not levels from weak to strong. Keep the target and server unchanged during testing, switch one mode at a time, and compare the results with rule-match records. Don’t infer the result from the mode name alone.

The app says connected, but pages won’t load. What should I check, and in what order?

Stop the connection first and confirm that your Wi-Fi or cellular network can reach common destinations. If the network requires a sign-in page, complete that first. Return to Shadowrocket, check the default server and its status, then run Connectivity Test. If the server test succeeds, compare Global Routing modes: if Proxy works but Config doesn’t, check rules and policy references first. If domain names fail while other tests succeed, check DNS records. Change one setting at a time and save the error message. Changing servers, rules, and DNS all at once makes it harder to find the cause.

Why shouldn’t I switch servers right away if only one site or app fails?

If only some targets fail, the server may still be working. The difference may be due to rule matching, DNS, the target’s status, or app cache. Note the failing domain and time, then check which rule it matches and the resulting policy. DOMAIN-SUFFIX matches domain suffixes; DOMAIN-KEYWORD matches keywords in domain names. Rule order affects the result, so put specific matches before FINAL. Make sure the Config you just edited is active before testing again. Don’t replace the entire configuration for one failing target, and don’t share logs containing credentials.

Why does a latency test return a result if I still can’t access the destination?

A latency result describes the response to a particular test target using a particular test method. It doesn’t mean every website, protocol, or app will work. Check the Ping test method and target in Settings, then cross-check with Connectivity Test and actual browsing. Compare results on the same network, with the same method, and at similar times. Don’t rank values from different test methods as if they were equivalent. If the test responds but actual requests fail, check authentication details, routing rules, DNS, and the target’s status. Repeating latency tests usually won’t fix these problems.

How should I use Log? What should I redact before reporting an issue?

Start with one issue you can reproduce. Enable Log as needed, perform the relevant action once, and note the network, Global Routing mode, and test target. Focus on the error type, rule matches, and event sequence. When done, restore an appropriate logging level to avoid collecting unnecessary detail over time. Before sharing logs, redact subscription URLs, authentication fields, server credentials, and domains or request details that could reveal your browsing activity. Don’t send only a screenshot of the connection icon or publish your full configuration. Sharing only the information needed makes issues easier to diagnose.