Shadowrocket FAQ
First identify whether the issue involves a purchase, permissions, importing, or a connection, then follow the relevant checks below. These instructions focus on iPhone and iPad; menu locations and available options may vary, so refer to the interface on your device.
Purchase verification and help
Check purchase status in the App Store and server status in your existing configuration. Distinguish the app purchase from network service before deciding what to troubleshoot.
Can't find Shadowrocket in the App Store? What should I check first?
Check that Shadowrocket is spelled correctly, then verify the country or region for the Apple ID currently used with the App Store. Search results depend on the storefront and device compatibility, so not finding the app does not by itself indicate its status. Use this site's app link to open the App Store product page and check the storefront information. To review your region settings, open Settings, tap your Apple Account, then go to Media & Purchases, View Account, and Country/Region. Follow Apple's prompts, and resolve any balance or active subscription restrictions before making changes.
How can I verify that the Shadowrocket app in the store is genuine?
Check the developer name, Shadow Launch Technology Limited, the app ID 932747118, and the official app icon. You can confirm the app ID from the product page URL, which contains id932747118; the icon should match the official icon shown on this site. Don't rely on the name, search position, or promotional text alone—imitations may use similar wording. Once all three details match, review the price and compatibility. Shadowrocket is sold only on the App Store, and purchases and updates are handled there.
Do I have to buy Shadowrocket again after changing iPhones or reinstalling it?
Sign in to the App Store with the Apple ID used for the original purchase. Find Shadowrocket in your account's Purchased section or app list, then follow the store prompts to get it again. If the product page shows a price, first check the account used for Media & Purchases, your purchase history, and the current storefront; don't pay again before verifying. Restoring the app does not necessarily restore all its settings. Save your subscription URLs, server details, and custom rules beforehand, then import them again after reinstalling as needed.
Can I install Shadowrocket on iPad? Where can I check Mac and Apple TV compatibility?
Shadowrocket is primarily used on iPhone and iPad. Check the same App Store product page to confirm availability and get the app for iPad. If you're using the Apple ID that made the purchase, first check Purchased and the status shown on the store button. For Mac, Apple TV, and Apple Vision availability, system requirements, and universal purchase eligibility, refer to the App Store page. Compatibility on one device does not guarantee compatibility on another; check the compatibility section for the device you plan to use before purchasing.
What does the one-time purchase include, and why do I still need my own configuration?
The one-time purchase covers use of the Shadowrocket app; it does not include a network service plan. The US storefront price is $2.99. The actual price, currency, and purchase terms depend on your local App Store page. Before connecting through a proxy, you'll still need your own subscription or server details, and should check that they are valid and correctly configured. App purchase history and network service status are separate. This site provides the official manual; it does not provide, sell, or recommend servers or subscriptions, or manage your network service.
First launch and permissions
Complete system authorization and make one manual connection before setting up automatic triggers. Understand the connection switch, routing mode, and test results separately.
What does the system prompt to add a VPN configuration mean when I connect for the first time?
This is the system authorization step that lets Shadowrocket add a VPN configuration and handle connections through the system network extension. Make sure the prompt appears after you open Shadowrocket and start a connection, then follow the system instructions. Allowing a configuration does not mean you have a working server or that all requests will use a proxy; traffic routing depends on Global Routing and your current configuration. If you cancel, return to the app and start the connection again to review the permission prompt.
What should I do if the connection switch on the Home screen won't turn on or turns off right away?
First determine whether system authorization is incomplete or the connection fails during startup. Make sure you've selected a valid server you already have, check that all required fields are filled in, then try connecting again and respond to any system permission prompts. In Settings, check whether the VPN configuration is present, and whether another VPN connection or a device management policy could be interfering. If the switch still resets immediately, note the error shown in the app and verify the server settings. Don't rapidly toggle the switch or delete all configurations as a first step.
What do SERVER, Global Routing, and Connectivity Test show on the Home screen?
SERVER lets you view and select imported servers. Global Routing determines how requests are handled, such as by the current configuration rules, a proxy, or a direct connection. Connectivity Test checks whether a test destination can be reached. To troubleshoot, confirm the intended server is selected under SERVER, check Global Routing, then compare the test result with actual browsing. A test response only confirms a result under those test conditions; it doesn't prove every website is reachable or indicate sustained download speed or overall server quality.
The interface is in English. Can I follow a Chinese-language guide?
Use the English interface labels retained in the official manual; you don't need to change your system language first. Check connections and servers in Home, the active configuration in Config, and relevant options in Settings. Use Add Server to add a server and Scan QR Code to scan one. Menu locations may vary by device and app state, so follow the interface on your device. If an option in a guide isn't visible, check the page you're on, the selected type, and the App Store update status. Don't guess a field based on a similar translation.
How is On Demand different from turning on the connection manually?
A manual connection is started or stopped by you in the app. On Demand starts or changes the connection based on configured conditions and system state. For your first connection, connect manually and verify access before setting up On Demand. This helps distinguish automatic reconnections from a faulty switch. If the connection comes back after you turn it off, check whether On Demand is enabled and its conditions are still met. You can temporarily turn it off while troubleshooting; once manual connections work, restore conditions one at a time rather than changing several at once.
Subscription and server imports
These instructions assume you already have your own subscription or server details. Identify what type of information you have, then check the URL, response, and protocol-specific fields.
Why does importing my subscription link fail?
Make sure you copied the complete subscription URL, not an account webpage, an instruction page, or truncated shared text. Check for leading or trailing spaces, line breaks, and special characters that may have been changed by a messaging app. Then verify that the subscription is still valid and the URL is reachable on your current network. If the URL opens but import fails, ask your existing provider whether the response uses a format Shadowrocket can read. Don't post the full subscription URL publicly; its credentials could let others access your server details.
Why are there no selectable servers under SERVER after importing a subscription?
A saved subscription entry does not necessarily mean a server list was retrieved successfully. Check the subscription's update result, whether its list is collapsed, whether you're viewing a different group, and whether the response is empty. If the update failed, check the URL, service validity, and network access in that order. Verify the response format before trying another update, and avoid repeatedly adding the same subscription. If you have manually added servers, don't delete them all first; keeping a known configuration helps identify whether the problem is with the subscription fetch or an individual server.
Can updating a subscription change the currently selected server?
Updating a subscription retrieves the server information currently returned by its URL. Names, addresses, and the number of entries can change when the provider updates its content. After an update, check the selected entry again; its original name alone doesn't prove the server settings are unchanged. Avoid editing fields directly in entries managed by a subscription, as a later update may overwrite them with the provider's settings. If you need to keep your own changes, save the relevant details, distinguish manually added entries from subscription entries, and manage them using the options the app supports.
Which fields should I check when using Scan QR Code or Add Server manually?
Select the protocol type that matches the server details you already have, then check the address, port, and authentication fields required for that type. For TLS connections, verify the server's required fields as well; don't leave a field blank just because it looks optional. Scan QR Code only reads the encoded data—a successful scan doesn't confirm that the settings are valid or the server is online. After importing, open the entry and check its type and key fields. If the QR code is unclear, get the original image again rather than guessing a password, key, or address from incomplete data.
What's the difference between a subscription, an individual server, and a Config profile?
A subscription typically retrieves and updates a set of server details. An individual server entry contains the protocol and authentication settings for one connection. A profile in Config organizes rules and related network settings. These serve different purposes: importing a server doesn't automatically enable the rules you need. When troubleshooting, first check whether the server connects, then review the current Config and Global Routing selection. Before importing, identify what kind of information you have so you don't treat a rules file URL as a server subscription or server details as a complete configuration.
Routing rules and troubleshooting
Narrow down the issue by checking your local network, server, routing mode, DNS, and rules in that order. A connection indicator or a single test can't replace checking actual access.
How should I choose between Config, Proxy, and Direct in Global Routing?
Config applies the rules in the current configuration file. Proxy generally sends requests it can handle through the selected proxy route. Direct sends requests without forwarding them through the selected proxy server. For everyday split routing, check Config and its rules. To troubleshoot the selected server, briefly compare with Proxy; to check your local network, compare with Direct. Changing modes won't fix incorrect server settings, and Direct does not remove the VPN configuration. Keep DNS and the network behavior of individual apps in mind when interpreting results.
Why can't I access the internet even though the app shows connected?
A connected status means the system network extension has started; it doesn't guarantee that the server, DNS, or destination websites are working. Disconnect first and confirm your local network can access the internet normally, including any required network sign-in. Connect again and check the selected server and Global Routing. If only some domains fail, check DNS and rule matching. If all requests fail, first verify the server is valid, its authentication settings are correct, and it is reachable. Change one setting at a time and retest the same destination so you can identify what made a difference.
Connectivity Test succeeds, but webpages load slowly. How should I troubleshoot?
A Connectivity Test result and webpage loading speed measure different things. Web performance also depends on DNS, the destination site's response, throughput, and your local network. Keep the test destination and server constant, compare Wi-Fi with cellular data, then check whether the slowdown affects just one website or one server. Note your current configuration before switching servers, and avoid changing protocol settings at the same time. If the issue occurs only on a particular service you already use, report when it happened and what you observed to that provider. Remove addresses, authentication details, and subscription credentials before sharing logs.
Shadowrocket is using more battery. Which settings should I check?
Start by reviewing battery usage for the relevant period in system settings, and distinguish foreground use, continuous data transfer, and idle time. Weak signals, frequent reconnections, heavy network activity, and ongoing diagnostics can all increase battery use; the connection icon alone won't identify the cause. Check whether On Demand keeps triggering, whether the server is stable, and whether diagnostic logging is enabled when you don't need it. Compare similar periods under similar network conditions, changing one factor at a time. Don't assume a particular configuration uses less power based only on its protocol name.
Rules don't seem to be working. How do I check which Config is active?
First make sure Global Routing is set to Config, then open Config and verify which profile is active. Check rule order, match conditions, and the final action. For example, DOMAIN-SUFFIX and IP-CIDR match different kinds of traffic, and an earlier matching rule can affect what happens next. Apply changes as prompted by the app, then retry the request. Existing connections or cached data may affect what you see. If you need to inspect logs, keep only the diagnostic details you need. Back up the original configuration and make minimal changes rather than replacing the entire file to see if it helps.