Official Manual · FAQ

Shadowrocket
Purchase, Import & Connection Issues

Find answers by where the issue occurs: App Store listings and purchase history, device installation and permissions, importing existing subscriptions, or connections and rules. Check the facts before taking action. During troubleshooting, change one condition at a time and keep a record of the original settings and error messages.

  • Verify the App Store listing
  • Import an existing subscription
  • Global Routing
  • Connection troubleshooting

For step-by-step instructions, see the setup guide. To check where to buy the app, see the App Store download guide. Expand questions below individually or open several to compare answers.

App Store listings and purchase history

Verify and purchase

Can't find Shadowrocket in the App Store? Check these first

Search results depend on the storefront linked to the Apple ID used for App Store purchases. Shadowrocket may not appear in the mainland China storefront. On your device, go to Apple ID settings and open Media & Purchases to check the account's Country/Region. This is separate from your device's language and region settings. Then open the App Store product page linked from the download guide and check availability for that storefront. If you need to change your account's region, use the official Country/Region settings and review the requirements for your balance, subscriptions, and payment method first. Don't switch regions repeatedly just to change search results. See the genuine-app guide for detailed checks.

How can I verify that an App Store listing is the genuine Shadowrocket app?

Check the app name, developer, official icon, and product page address together; don't rely on the name in search results alone. The developer should be Shadow Launch Technology Limited. The icon is a blue-and-purple outlined rocket on a white background, matching the official icon in this site's header. The product page address should contain id932747118, and the app ID is 932747118. Verify these details on the App Store product page before checking the price and compatibility and making a purchase. The App Store is the only place to get Shadowrocket. This guide explains how to verify the listing and make a purchase; purchase and installation take place in the store.

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

In most cases, you can redownload Shadowrocket from your App Store purchase history using the Apple ID you originally used to buy it. First check which account is signed in under Media & Purchases, then look for the app in your purchase history. The account used for device syncing may differ from the one used for App Store purchases. If the product page still shows a price, check your purchase history, storefront region, and whether the app is hidden before paying again. Redownloading the app does not restore all settings. Check whether the server details, subscriptions, and Config on your old device were backed up separately. Purchase eligibility and current availability are determined by the App Store listing.

What does the one-time purchase include, and why do I still need to import a configuration?

Shadowrocket is a paid client. The US storefront price is approximately $2.99 as a one-time purchase; the actual price, currency, and purchase eligibility depend on the App Store listing. A one-time app purchase is not a service plan: it grants the right to use the app but does not provide server details. Before connecting for the first time, import your own existing subscription or server details and verify the authentication fields. This site provides the official Shadowrocket manual and does not provide, sell, or recommend servers or subscription services. App updates are handled through the App Store; existing subscriptions are updated in the app. These are separate processes.

Check storefront availability and purchase details →
Device setup and system permissions

Install and first launch

Can I install Shadowrocket on iPad, and does each device need a separate purchase?

Shadowrocket is primarily for iPhone and iPad. Check the App Store listing for system requirements and purchase eligibility across devices. On iPad, verify the Apple ID used for App Store purchases and look for Shadowrocket in your purchase history. If your account is eligible, the store will offer the appropriate download option. The layout may differ from the iPhone version, so use interface labels such as Home, Config, and Settings rather than relying on button positions in phone screenshots. After installation, check whether your subscriptions and Config are already on the device. Purchase eligibility and in-app settings are separate. The download guide lists the checks to make on iPad.

The connection switch won't turn on or turns off immediately after first launch. What should I do?

The first connection usually requires permission to add a VPN configuration. First make sure a usable entry is listed and selected in Home, then turn on the connection. When the system permission prompt appears, confirm that it refers to Shadowrocket and approve it as required by the system. If you previously declined permission, try again in the app and check the configuration status in the VPN section of system settings. Another active VPN connection or device-management restrictions may also prevent startup. During troubleshooting, keep only the connection you need to test. A switch that turns off immediately does not necessarily mean the subscription has expired. First determine whether the issue is system authorization or server connectivity, then follow the error shown in the app.

The interface is in English. Which sections should I use?

This manual keeps interface labels in English so you can match them to the buttons on your device. Home shows server entries and connection status; Add Server adds connection details; Config manages configurations; and Settings contains app settings. Global Routing is where you choose how traffic is handled. To check the app's language, look for Shadowrocket's app language options in system settings. Available languages depend on your device and the current app display. A change in interface language does not indicate a configuration problem, and you don't need to delete an existing subscription to change the language. Use section names and field labels to navigate rather than relying on fixed button positions.

How can I find out why battery use increases when the connection is on?

Battery use can be affected by traffic volume, wireless signal strength, server connection stability, and background activity from other apps. The connection switch alone does not identify the cause. Compare usage for the same period in system battery statistics, then check the traffic readings in Data for sustained uploads or downloads, or frequent reconnections. Compare results on the same network over similar periods of use, changing one condition at a time. Video streaming and large file transfers can affect the results. If On Demand is enabled, check its triggers to prevent automatic reconnections during testing. Turn off connections you don't need and observe the results. Data traffic statistics do not measure battery consumption.

Learn about Data and traffic statistics →
Importing and managing existing details

Subscriptions and server imports

An existing subscription won't import. What should I check, and in what order?

First make sure you copied the full subscription URL you already have, not the URL of an account webpage. Check for extra spaces or line breaks and missing query parameters. Then confirm that your current network can reach the address and that the subscription is still valid. To add a Subscribe entry through Add Server, enter the address in the corresponding URL field, then save and update using the options shown in your version of the app. If the response contains webpage content, an authentication error, or a parsing error, check the subscription format and authentication status with the service that issued it. Repeatedly importing the same address usually won't fix these issues. Note the error message, but don't share the full URL; it may contain access credentials.

Can't connect after using Add Server manually? Check these fields first

When adding a server manually, match the details you already have exactly. Check the protocol, address, and port first, then the password or UUID and any server-required fields for transport, TLS, SNI, and path. Required fields vary by protocol; don't assume VMess and VLESS settings are interchangeable just because their names look similar. Don't enter made-up values just to fill every field. After saving, return to Home, select the entry you just added, and test the connection. If you have a QR code, use Scan QR Code to import it, then verify the fields. Change one item at a time and keep the original details so you can identify the source of any error.

How do I update an existing subscription, and why did its entries change?

In Home, find the relevant Subscribe group or entry and use the update option shown in your version of the app. Then check the result and any error message. Updating fetches the server list returned by that address, so entry names, counts, or parameters may change as the contents of your subscription change. This is separate from updating the app through the App Store. Before updating, note the name of the entry you're using; afterward, check that it is still selected and usable. If the update fails, check the URL, authentication status, and network before deleting the entire group. Record important manual settings beforehand; don't assume local changes will be retained the next time the subscription updates.

What's the difference between Subscribe and Config, and why check the rules after importing?

Subscribe is generally used to retrieve a server list, while Config manages rules and related traffic-handling settings. The actual contents depend on the format of the imported data. Seeing entries in Home only confirms that a list was imported; it doesn't prove that a rules file exists or is in use. If you plan to use Config in Global Routing, open Config and check the active configuration. Make sure its rules and policy names correspond to available servers. PROXY rules and custom policies need a usable target in the configuration; copying the rule text alone does not make it work. Check server details and configuration separately, then test the connection to avoid confusing import issues with routing problems.

See the guide to importing and making your first connection →
Routing modes and troubleshooting steps

Routing rules and connection troubleshooting

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

Config uses the rules in the active configuration to handle traffic. Use it with a rules file you've checked. Proxy routes traffic through the selected proxy target and can help you test whether a server connection works. Direct connects traffic without a proxy and can be compared with the device's normal network connection. These modes change the traffic path; they won't fix incorrect authentication details, an expired subscription, or a device network problem. For everyday rule-based routing, use Config after confirming that the configuration and its policy targets are valid. During troubleshooting, note the original setting, switch one mode at a time, and restore the original setting afterward to avoid misreading the results.

The switch says connected, but webpages won't load. How should I troubleshoot?

Connected means the system has established a connection; it doesn't guarantee that every request can reach its destination. Pause the connection first and check that the device's regular network can open common websites, then verify the selected server in Home. Run Connectivity Test and compare its results with an actual webpage request. A successful test alone doesn't prove that all traffic works. If the page loads in Proxy but not in Config, check the matching rule, policy target, and DNS settings. If both modes fail, check the server details and current network first. Change one item at a time and record the error and routing mode. Don't reset all settings at once, or you may lose useful points of comparison.

A rule looks right but doesn't seem to work. How can I check which rule matched?

First confirm that Global Routing is set to Config, then check the configuration file actually in use—not just a file you've opened to inspect. Rules are generally matched in the order listed, so an earlier match can prevent later rules from handling the request. Check the domain following keywords such as DOMAIN-SUFFIX and make sure the policy name at the end of the rule exists and is usable. FINAL is the fallback rule when no earlier rule matches. Make a new request to the destination and review the result in the connection logs available in the app. Existing connections may not switch paths immediately after a rule changes, so test with a new request. Save the verified configuration when troubleshooting is complete.

Only some domains won't load. Should I change DNS right away?

Failures affecting some domains may involve DNS, rule targets, the server's connection to the destination, or the destination website itself. Identify the cause before making changes. Compare the same domain under Direct, Proxy, and Config, then check the domain, address, and handling policy in the connection logs. If only Config fails, check whether a rule assigned the domain to an unavailable policy. If the address can't be resolved, check the DNS settings actually in use under Config or Settings. Don't cycle through multiple sets of parameters because one site won't load, and don't disable certificate verification without a reason. Note the original settings, change one item at a time, and retest the same destination before keeping the change.

See how to use Global Routing →

Back to category list ↑ · Continue reading the Rules guide · Look up interface labels and rule keywords