Shadowrocket / FAQ

Shadowrocket FAQ

The official manual groups common questions into four stages: purchase, first launch, importing, and connecting. Find the step where the issue occurs, then follow the answer's checks in order. Save your current settings before making changes, and change one thing at a time.

  • Home
  • Subscribe
  • Global Routing
  • Config

Check the App Store page for purchase and compatibility details. Questions about existing subscriptions or servers assume you already have the relevant information.

Purchase verification and buying

Check search results, purchase history, and storefront region separately. Verify the product first, then handle purchase or restoration.

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

First, make sure you searched for Shadowrocket, then open the App Store product page from this site's purchase verification guide. Search results can vary by storefront region, device compatibility, and account settings; not finding the app does not mean you need another way to get it. If the product page says the app isn't available in your region, check that your Apple ID country or region matches the storefront you're using. If it says your device isn't compatible, review the compatibility section on the App Store page. Shadowrocket is available only through the App Store; check the product page for system requirements.

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

Check the name Shadowrocket, the developer Shadow Launch Technology Limited, and app ID 932747118 in the product page URL. Also compare the official icon used on this site: a rocket on a white background with a blue-purple outline. A matching or similar name alone is not enough, and a similar-looking icon does not prove authenticity. Once these details match, review the price, compatibility, and purchase button. Check the App Store page for current pricing and system requirements. This site's purchase page links directly to the product page and explains how to verify each detail.

Do I need to buy Shadowrocket again after getting a new iPhone or deleting the app?

In most cases, sign in with the Apple ID used for the original purchase, then find Shadowrocket in the App Store account's purchased apps list and download it again. You shouldn't have to pay twice for the same valid purchase. If you see a price instead of a download button, check that the account used for Media & Purchases is the original purchasing account, then review your purchase history and storefront region. Restoring the app does not restore all local settings. Check separately whether server details, subscription URLs, and custom rules were retained; this depends on how you backed up or transferred them.

How do I check when my account region and App Store storefront don't match?

Check which purchasing account is currently signed in to the App Store. Then open Media & Purchases in the Apple Account section of Settings and check the account's country or region. Menu names and locations can vary by system version. If you need to change the region, follow Apple's official process in your Apple Account and first address any listed requirements, such as account balance, active subscriptions, payment methods, or Family Sharing. Don't keep switching regions just because of one search result. For purchase restoration, first confirm the original purchasing account and purchase history.

Does buying Shadowrocket include a connection service?

A one-time app purchase is not a service plan. Buying Shadowrocket gives you a license to use the client; you must provide your own subscription or server details for connections. This site does not provide, sell, or recommend servers or subscriptions. It explains how to import information you already have and check your configuration. Shadowrocket is a closed-source commercial app. The US storefront lists it at $2.99; other storefronts show local currency. Check the App Store page for the current price. Before paying, distinguish the app purchase from the validity period of any connection service you already have.

See how to verify the app using three key details →

Installation and first launch

Getting the app, granting system permissions, and configuring a server are separate steps. Complete each step before troubleshooting the next.

Can I install Shadowrocket on iPad, and do I need to buy it separately?

Shadowrocket is primarily for iPhone and iPad. On your iPad, sign in to the App Store with the original purchasing account, then open the same product page or check your purchased apps list. Check the App Store page to see whether an existing purchase covers your device and what the universal purchase terms are. Lists and settings may be arranged differently on iPad than on iPhone, but look for interface labels such as Home, Config, and Settings. After installation, check your existing subscriptions, current configuration, and selected server separately; downloading the app does not mean your configuration has been transferred.

How should I handle the VPN configuration permission prompt on first connection?

When Shadowrocket creates a system network tunnel, iOS displays a prompt to add a VPN configuration. First, make sure the prompt was triggered by an action you just took in Shadowrocket. Follow the system instructions and authorize with your device passcode or system authentication. If you canceled earlier, return to the app and try connecting again. Managed devices may restrict adding VPN configurations; check the device management policy or contact your administrator. Authorization only allows the connection to be created. You still need valid server details and a correct configuration, and authorization does not confirm that the external network is reachable.

The connection switch on Home won't turn on. What should I check, and in what order?

On Home, first select a server with complete settings. Then check whether turning on the switch triggers a system permission prompt or an error. If authorization is incomplete, resolve the VPN configuration permission first. If another VPN connection is active on the device, disconnect it and try again. Next, check the server address, port, authentication fields, and protocol, then make sure the device's network is working. If the device is managed, don't repeatedly delete configurations to work around restrictions. Note whether the error appears before or after authorization; this helps distinguish a system permission issue from incorrect connection settings.

The interface is in English. How do I match the options in the guide?

This manual keeps the app's English interface labels. Home shows servers and connection status; Config manages configurations; Settings contains app settings. Under Global Routing, Config, Proxy, and Direct are the three routing modes. Look for these exact labels rather than relying only on a button's position. If your device lets you set an app-specific language, check the app's settings in system Settings for available options. Language choices and interface layout depend on what the current app version displays.

How do I update Shadowrocket, and what should I do before updating?

Update Shadowrocket through the App Store. Check for updates on your store account page, or use automatic updates if enabled in your device settings. Before updating, save important custom rules and configurations, and make sure you can still access your own subscription or server details. Store backups containing authentication fields securely. After updating, check that the current Config, Global Routing, and selected server still match your intended setup, then test an actual connection. App updates and subscription updates are different: an app update updates the client, while a subscription update retrieves server details from a subscription you already have.

Follow the first-use tutorial in order →

Subscriptions and server imports

First identify whether you have a subscription URL, individual server settings, or shared server details. Each uses a different import method and requires different checks.

An existing subscription won't import. What should I check first?

Make sure you copied the complete subscription URL, not an account management page URL, and remove any leading or trailing spaces or line breaks. Confirm that the device's current network can reach the URL, then check that the subscription is still valid and returns a format Shadowrocket can read. If it returns a login page, an error page, or no content, importing it again usually won't help; ask the original service provider to confirm the URL and access requirements. Don't post a subscription URL containing authentication details publicly. If you need to describe the issue, share the error text and the type of content returned instead.

How do I choose the right type when importing existing server details?

In Add Server, choose the protocol that matches the original details, then enter the address, port, and authentication fields. Shadowsocks, VMess, VLESS, and Trojan use different fields; don't treat them as interchangeable just because they all have an address and port. After importing existing shared details, check that the protocol, TLS, transport settings, and related names match the source. A single server's details are not a Subscribe URL. If you aren't sure what a field means, check a technical reference and confirm with the provider of the original details.

Scan QR Code fails or finds no server. What should I do?

In system Settings, first confirm that Shadowrocket has camera permission. Make sure the QR code is complete, clear, and not cropped. A successful scan does not guarantee that the code contains server details; it may just be a web address. Check whether the original content uses a sharing format supported by the app, and try importing the text from the source if needed. After importing, return to Home and check that an entry was added with complete settings. QR codes and shared text may contain authentication details. Don't share the original image publicly, and don't start a connection just because the scan succeeded.

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

Update the subscription from its management screen, wait for the result, then review the server list on Home. Updating a subscription refreshes entries with the data returned by the remote service, so names, counts, and settings can change based on the service you already have. Don't treat an old local list as a permanent record. Before updating, note the entry you're using and any important settings; afterward, confirm the selected entry again. If the update fails, first check that the URL is valid and reachable. Don't delete the original entries right away. The update button's location depends on the current app interface.

Repeated imports created many entries with the same name. Can I delete them?

First determine whether the entries are refreshed results from one subscription or separate records created by repeated manual imports. Matching names do not guarantee matching addresses, ports, or protocol settings. Before deleting anything, open the details, check where each entry came from, and confirm which one is in use and whether a configuration references it. Keep valid subscriptions and manual entries you still need; remove only records confirmed to be duplicates or invalid. If a rule or policy refers to an entry by name, check that the reference still works after deletion. Save any necessary configuration first, so you can identify the cause if the connection changes.

Routing rules and troubleshooting

Check the original network, server, Global Routing, rules, and DNS in that order. Keep the test destination the same so you can compare results at each step.

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

Config uses the rules in the current configuration to decide how requests are routed, making it suitable for rule-based routing. Proxy sends applicable traffic through the proxy path and can help check whether a server can handle real requests. Direct uses a direct connection and can be compared with the device's normal network path. These modes are not speed levels and cannot compensate for incorrect server settings. For everyday rule-based routing, make sure Config uses the intended configuration. When troubleshooting, change one mode at a time and repeat the same test, recording the result.

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

Connected usually means the system tunnel is active; it does not mean every destination is reachable. Pause the connection and confirm that the device's normal network works, then check the selected server's settings and service status. Next, make sure Global Routing is set as intended. In Config, check which rules and policies match the relevant requests, then check DNS results. Change one setting at a time and revisit the same destination. A latency test cannot replace an actual webpage request: the test method, destination, and network path may differ.

Latency tests work, but domains won't open. Is DNS the problem?

DNS could be involved, but a latency result alone is not enough to tell. First check whether multiple domains fail, then look for resolution timeouts, failures, or unexpected results in diagnostic information. Next, review the DNS settings in the current configuration and confirm they are reachable. If you recently changed DNS-related options, save the current settings, restore known-working values one at a time, and retry the same request. Don't stack several DNS changes at once. Also check the destination's rules and server status so that connection failures, policy rejections, or destination service issues aren't all attributed to DNS.

Custom rules aren't taking effect. Should I check their order or the policy?

Check both, but first confirm that Global Routing is set to Config and that the edited configuration is active. Rules are usually matched from top to bottom, so a broad rule earlier in the list may match before a custom rule. FINAL should be the last-resort rule at the end. Then check the syntax of fields using keywords such as DOMAIN-SUFFIX, and make sure PROXY, DIRECT, REJECT, or any referenced policy is valid. Save your changes and send a new request, then use diagnostics to confirm which rule matched. Existing connections may keep using their previous route, so don't judge changes by watching an old connection.

Battery use increases while connected. How can I find the cause?

In system battery usage, compare app activity over the same period, including foreground use, background transfers, and screen-on time. Battery use can depend on traffic volume, network signal, connection retries, protocol settings, and diagnostic logging; the VPN indicator alone doesn't identify the cause. Under similar network and usage conditions, reduce unnecessary repeated tests and check whether the server disconnects and reconnects frequently. Set On Demand only as needed. Don't change the protocol, rules, and DNS all at once. Changing one setting at a time and comparing results makes the cause easier to find.

Review protocol types, settings, and use cases →