OFFICIAL MANUAL / REFERENCE

Shadowrocket Complete User Guide

Follow eight steps, from verifying the App Store listing to everyday configuration and maintenance.

This section of the official Shadowrocket guide is for looking up settings, understanding how they work together, checking parameters, and troubleshooting. If you're new to the app or just want to make one connection, start with the setup tutorial, then return to the relevant chapter if you need more detail. Instructions focus on iPhone and iPad; interface locations and available options may vary by device.

  • Get Shadowrocket from the App Store
  • Use your existing connection details
  • Keep a working configuration before making changes

01 / APP STORE

App Store purchase and getting the app

Check the product page before you buy

Shadowrocket is a paid client for Apple platforms, available exclusively through the App Store. Before buying, review our App Store listing verification guide and check the product name, developer, and app ID instead of relying on search results alone. A similar name or icon does not prove it's the same app. Open the full product page, review its details, and use the purchase or redownload option shown there.

The developer should be Shadow Launch Technology Limited, and the app ID is 932747118, matching id932747118 at the end of the product page URL. Compare the official icon with the one shown on this site. All three details should match. If any differ, go back and check that you opened the right listing; don't rely on the description alone. The App Store listing is the source for purchase details. This guide helps you locate them but does not replace the information shown in the store.

The price next to the purchase button is set by your current storefront. The US storefront reference price is $2.99 as a one-time purchase; the App Store listing shows the current price and final terms. Currency, taxes, and availability can vary by storefront, so prices in other regions may not apply to your account. Before paying, check which Apple Account is used for App Store purchases; it may differ from the account signed in on your device. You'll need to check your purchase history if you redownload later.

Keep the app purchase separate from connection details

A one-time app purchase does not include a server plan. Buying Shadowrocket gives you the right to use the client, but does not provide a server to connect to. The steps that follow assume you already have your own subscription or server details; check the address, credentials, and active status with your service provider. This site provides the official guide and site information, but does not provide, sell, or recommend servers or subscriptions. Rule snippets in this guide are examples, not ready-to-use connection services.

Before getting started, keep two sets of details separate: your App Store purchase record, which is used to get the app, and your server or subscription details, which are used to connect. When something goes wrong, first identify which set is involved. If you can't redownload the app, check your store account and purchase history. If the app opens but won't connect, check the server settings, network, and routing. These are usually separate issues; buying the client again won't fix expired or invalid connection details.

Record only the details you need and store them somewhere protected on your device. Subscription URLs may contain credentials, so don't post the full address in a public forum. Server screenshots can also expose passwords or account identifiers. If you need help, share the protocol, the stage where the error occurs, and what you've already tried—after removing sensitive information. Include enough to explain the problem, but not enough for someone else to access your resources.

Device compatibility and redownloading

This guide focuses on iPhone and iPad. Mac, Apple TV, and Apple Vision compatibility is listed on the same App Store page. System requirements, device compatibility, and purchase eligibility are determined by the App Store listing. Don't assume that devices with the same app name have identical layouts, feature locations, or purchase terms—especially when their screen sizes and input methods differ.

To get the app on another eligible device using the same purchase account, first check your App Store purchases or the purchase list for that account. Redownload only after the store shows the redownload option. If it still shows a price, check the account, storefront, and purchase history before paying again. For iPad details, see Using Shadowrocket on iPad and finding purchased apps. The App Store determines which purchases are eligible.

02 / FIRST LAUNCH

First launch and VPN permission

Start with Home before connecting

When you first open Shadowrocket, review Home before turning on the connection switch. Home brings together connection status, Global Routing, Connectivity Test, and the SERVER list. SERVER needs usable connection details; Global Routing determines how requests are routed; the connection switch starts the system network tunnel. Each has a separate role: a server in the list isn't necessarily selected, and selecting one doesn't mean the tunnel is connected.

If Home shows Not Connected, that only means the app reports no active connection; it doesn't tell you whether your subscription is valid. Check the list, select the server you intend to use, and confirm the routing mode—in that order. This helps avoid granting connection permission while the list is empty or the wrong mode is selected, then blaming every problem on system permissions. For an interface overview, see First launch and the Home screen.

Keeping the default settings at first usually makes problems easier to diagnose. You don't need to enable every extra feature at once. Start with one goal: make a manual connection using your existing details. Once it works, adjust On Demand, DNS, or rules one at a time. Handling permissions, connection details, and advanced settings separately makes it easier to identify what caused a change and return to a known-working setup.

What the system permission prompt does

When you start a connection, iOS may ask to allow a VPN configuration to be added. This is part of Apple's network extension permission flow. Once allowed, the device can create a VPN configuration for Shadowrocket to use. You may need to enter your device passcode or complete another authentication step; follow the on-screen instructions. This is not a purchase step and does not enter your server address. It gives the client the system permission needed to start the network connection.

A VPN configuration and a proxy server entry are different things. The system manages the former, which controls tunnel startup and permissions. The app stores the latter, which contains the server, port, and authentication method. So a VPN configuration in system settings doesn't guarantee the SERVER list is correct; likewise, a successful import doesn't mean system permission has been granted. Check each separately rather than deleting everything and starting over.

If you tapped Don't Allow by mistake, return to Home, try starting the connection again, and see whether the permission prompt reappears. If it doesn't, open system settings and look for VPN or VPN & Device Management to check existing configurations and their status. Menu names and locations vary by system and device. On a managed device, some settings may be restricted; check with the administrator before trying to change them.

Check for permission conflicts if the connection won't start

If the device has other VPN configurations or network extensions, first check which one is currently active. For testing, pause configurations that might also control network traffic, then test Shadowrocket on its own to avoid overlapping automatic connection triggers. Keep the original settings for other configurations; there's no need to remove everything just to troubleshoot. On a work- or school-managed device, check the purpose of each configuration and any management requirements first.

Only consider rebuilding the VPN configuration if you have a clear reason to suspect it is damaged and granting permission again hasn't helped. Before making changes, keep your server and Config details, stop the connection, identify the specific configuration, and then remove and reauthorize it using the system's available options. Deleting a system VPN configuration won't restore a subscription and shouldn't be the first step for every problem. See Understanding the VPN configuration prompt for more detail.

If the connection still fails after permission is granted, note exactly where it fails. A switch that immediately turns off may point to a permission or network extension startup issue. If it stays on but requests fail, check the server and routing next. Different symptoms call for different checks; permission being granted doesn't mean everything is working. Record the exact system message, network type, and action that failed rather than repeatedly toggling the switch.

03 / SERVER & SUBSCRIBE

Add an existing server or subscription

Identify your connection details before choosing an import method

Before importing, identify what you have. Enter full server details field by field under Add Server. Protocol share links are generally used to add a single entry; a subscription URL retrieves and updates a group of servers. Config files are managed under Config. These may all look like links, but their formats and purposes differ. Putting a Config file URL in a server field, or treating a single share link as a subscription, can cause parsing to fail.

If you aren't sure what a link is for, ask your existing service provider to confirm its format and purpose instead of repeatedly rewriting it. When copying, watch for spaces, line breaks, punctuation, or truncated previews added by messaging apps. A link that looks complete on screen may still be incomplete when copied. Keep URLs containing credentials intact; removing query parameters can make a valid address unusable.

When using Scan QR Code, make sure the code comes from your own connection details. After scanning, check the protocol, name, and key parameters in the entry it creates. A QR code is just a way to encode data; it doesn't verify that the settings are correct. Check imports from the clipboard in the same way, especially if you recently copied another link. After each import, inspect one entry before importing a batch.

Keep Add Server parameters together

When adding a server manually, first choose the protocol that matches your connection details, then enter the server address, port, and authentication fields. Choosing the wrong protocol can change the fields that appear; don't copy a password from one protocol into an identity field for another. Enter only the address requested in the server address field, and use the exact port in your details. Don't guess from another entry or substitute a website's port for the server port.

Parameter groupWhat to checkCommon mistakes
Address and portBoth belong to the same server entryIncluding a URL path or extra spaces
AuthenticationEnter the password, UUID, or other identity field for the selected protocolMissing characters or credentials copied from another entry
TLS and SNIUse your existing settings and check the name covered by the certificateAssuming the server address is also the SNI
Transport settingsCheck the transport type, Host, and path against your detailsMissing the path or confusing Host with the address

Shadowsocks, VMess, VLESS, Trojan, WireGuard, Hysteria2, and other protocols use different fields; available options depend on what the app shows. Some connections also require TLS, SNI, or extra transport parameters. Check these as one set of connection details. Don't disable certificate verification just to force a connection through. A certificate error may point to a mismatch in the name, device time, or server settings; check for the discrepancy first.

Before saving, give the entry a recognizable name so you can tell it apart from others. Use the name for organization, not for storing a password. After saving, return to SERVER to confirm the entry is there and check which one is selected; adding an entry and switching to it may be separate actions. For the first test, use one entry with a clear source and complete settings to avoid the confusion that can come with importing a batch.

Subscription updates and Config updates are different

To add an existing subscription, choose Subscribe under Add Server, then enter the subscription URL and a name in the relevant fields. Save it and run the update action. Check whether the expected entries appear in the list. A successful update usually means the list was retrieved and parsed; it doesn't mean every server in it can connect. Accessing the subscription URL and connecting to a server are separate network paths, so test them separately.

If the list is empty or an update fails, first check that the URL is complete, the service is available, and the current network works. Then look for a specific parsing error. Don't assume an update failure means every server is down, and don't repeatedly delete the subscription to hide the problem. An update may replace entries managed by the subscription. Changes made directly to those entries may be overwritten next time, so keep any long-term custom entries organized separately.

Check Config files in Config management; a changed subscription list doesn't mean the rules have been updated. After importing, verify the server list, selected entry, and active Config file separately. If the Config file refers to policies or groups, make sure those objects exist. Once your connection details are clear, move on to Global Routing so you don't mistake a list issue for a rules issue.

04 / GLOBAL ROUTING

Global Routing modes and rule order

What Config, Proxy, and Direct do

Global Routing selects the routing mode for the current connection. Config uses the rules in the active Config file to determine where requests go. Proxy routes traffic through the selected proxy path. Direct connects without that proxy path. These are behavior modes—not speed settings or separate servers. Switching modes doesn't replace your authentication details; check that the server and Config are valid too.

ModeMain purposeWhat to check
ConfigMatch rules and select a policyActive Config, rule order, and matched policy
ProxyTest the selected proxy pathServer, authentication, and destination access
DirectCompare with access over the basic networkLocal network, DNS, and destination service status

For troubleshooting, briefly use Proxy as a comparison with Config. If the same destination works in Proxy but fails in Config, check rule matching and policy routing first. If both fail, check the server and basic network. Direct can help you observe direct access, but the result applies only to that network and destination at that time. Change one condition at a time, then restore the original mode so temporary settings aren't forgotten.

Global Routing isn't a standalone switch that every app can bypass. Requests may also be affected by the system network, DNS, app cache, and exceptions in the Config file. Check request logs to determine the actual route rather than relying on the selected mode alone. Browsers may reuse connections and apps may keep long-lived sessions, so after changing modes, send a new request—and close old sessions if needed—to check where the new connection goes.

Rules are evaluated from top to bottom; the first match takes effect

In Config mode, the order of rules in Rule directly affects the result. Put narrow, specific rules first and fallback rules at the end. DOMAIN matches an exact domain, DOMAIN-SUFFIX matches a domain suffix, and DOMAIN-KEYWORD matches a keyword in the domain. Keyword rules can have a broad scope, so don't put them ahead of all exact matches just because they're quicker to write.

IP-CIDR and IP-CIDR6 match address ranges. GEOIP uses the relevant IP address data; these rules are not interchangeable with domain categories. DNS results, address data, and the form of the actual request can all affect matching. If a domain rule doesn't match, check whether the request log shows a domain or an IP address and whether an earlier rule matched it. Don't infer the match from the web page title alone.

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
GEOIP,CN,DIRECT
FINAL,PROXY

This is a rule snippet for learning, not a complete connection configuration. The first line sends requests matching the domain suffix to PROXY; the second selects DIRECT based on the GEOIP condition; FINAL sets the fallback policy for requests not matched earlier. Before adding it to your Config file, make a backup and confirm that the referenced policy exists. The example domain illustrates syntax; it doesn't mean every site of a particular type should use the same policy.

Policy names, fallback rules, and applying a Config file

Rule keywords determine “how to match”; the policy at the end determines “what to do with a match.” DIRECT, PROXY, and REJECT have different effects—don't change every rule to the same one just to troubleshoot. If the Config uses custom groups, rule references must match the names actually defined. A typo, missing group, or group with no available entries can prevent an apparently correct match from working as expected.

FINAL is a fallback and belongs after the rules that need to be checked. If it appears too early, later rules can't handle requests that should match them. When adding a rule, check its syntax and how its scope relates to the rules around it; a broader suffix or keyword rule may already cover the destination. Trace the actual match when troubleshooting instead of repeatedly adding duplicate rules to the end of the file.

When you've finished editing, save the file and confirm that it is the Config file actually in use. Opening a file to view it doesn't necessarily mean it's active for the connection. For rule details, see Sections in a .conf file; for how settings affect one another, see the Settings guide. Keep a copy you can restore, then make focused changes; this is usually easier to verify than replacing the whole file.

05 / CONNECT & VERIFY

Connect, verify, and troubleshoot by layer

Follow a consistent sequence for your first connection

Before connecting, make sure the basic network works—especially Wi-Fi that requires a sign-in page. Pause Shadowrocket, complete the network's normal sign-in process, then return to the app and test. If the basic network isn't connected, a proxy test usually won't work either. Changing the server password won't fix this, and you should never enter subscription credentials on a public Wi-Fi sign-in page.

Next, check the selected server, Global Routing, and Config file on Home. Once all three are clear, turn on the connection switch. If prompted, grant VPN configuration permission and wait for the status to change. Don't rapidly toggle the switch during testing; one connection may still be closing as the next starts. If an error appears, note its exact wording and the step where it occurred before checking anything else.

A VPN status in the system only means the tunnel has started; it doesn't mean the remote server authenticated successfully or that a destination page is reachable. A complete check covers three layers: tunnel startup, an actual request, and the route taken. Treating an on switch as proof that everything works can hide an unavailable server, a rule mismatch, or DNS failure. Send a clear, repeatable request to continue testing.

Use Connectivity Test alongside real-world checks

Connectivity Test helps check reachability, but results depend on the test target and method. A successful test means that particular test completed at that time; it doesn't guarantee that every app will work. A failed test may also be caused by the test target. Record the method and compare results under the same conditions. Values from different test methods shouldn't be ranked directly against one another.

Latency is the time taken for one specific test; it is not file transfer speed or a measure of everyday browsing. Server response, handshake, network congestion, and the destination can all affect it. First check whether requests complete reliably, then look for consistently unusual delays. A smaller number in one test doesn't outweigh frequent disconnections or authentication failures during actual use. Repeated tests also use data, so run them in moderation.

For a real-world check, choose a destination you know and are allowed to access. Reload the page and see whether it finishes loading. If the page frame appears but images or API requests fail, check whether those resources use different domains and policies. Review the destination, matched rule, and connection error in the request log. Break “the page won't load” into specific failed requests instead of assuming the entire connection is down.

Identify the failing layer before changing settings

If the switch won't stay on, start with permissions and system configuration. If it stays on but the server connection fails, check the address, port, authentication, and TLS. If the server connects but a particular destination fails, focus on routing, DNS, and the destination service. This sequence is a troubleshooting path, not a definitive diagnosis; it helps avoid unrelated changes. Finish checking one layer before moving to the next, and don't change every condition at once.

What you observeCheck firstNext comparison
Connection fails immediatelyVPN permission, system restrictions, and other network extensionsEnable it on its own and note the system message
All destinations failBasic network, server settings, and service statusKeep the destination unchanged and try another working entry you already have
Only Config failsActive Config, matched rule, and policyCompare with a new request in Proxy mode
Only some resources failFailed domain, DNS, and destination responseCheck each request in the log

When switching from Wi-Fi to cellular, existing connections may drop. Wait for the new network to stabilize, then test again. If the issue occurs only on one network, note that difference and check its connection and DNS. If only one server entry fails while another works under the same conditions, focus on the failing entry instead of rebuilding the entire Config.

When contacting your service provider, include the protocol, the stage where the failure occurs, the network type, and a redacted error message. Note whether it fails in both Proxy and Config modes. Don't send passwords, full subscription URLs, or unchecked log files. To retrace the shortest set of steps, follow the setup tutorial. Keep the destination unchanged while testing so you can identify which step fixed the issue.

06 / DATA & OBSERVATION

Reading Data and request logs

Understand what the numbers measure; don't treat them as a bill

Data displays traffic and connection information as reported by the app; the items shown depend on the current interface. Before interpreting a number, check the time range it covers, whether it resets after reconnecting, and whether upload and download are shown separately. Different screens may track different things, so two different values don't automatically indicate a problem. A session total, cumulative total, and system per-app total are not the same measurement.

Traffic through a tunnel may include protocol overhead, handshakes, retransmissions, and background requests, so the reported amount won't exactly match the size of the files you use. Image caches, video preloading, and system background activity can also affect the totals. To check the effect of one action, note the starting value, perform a specific action, then check the ending value. Don't attribute a day's cumulative total to a page you just opened.

Traffic shown by the client isn't a substitute for usage records or billing information from your service provider. Each may use different time ranges, traffic directions, and counting rules. If subscription details show a remaining allowance, check its source and last update too. If values differ, note the time period and what you did, then ask your service provider how it calculates usage. Resetting the client counter won't change records kept elsewhere.

Use request logs to confirm which rule matched

When access doesn't behave as expected, the most useful log details are the destination, time, policy, and failure stage—not just total traffic. Send a fresh request, then find the corresponding entry by time. This helps avoid mistaking a cached result or old connection for the current one. A page may make several requests, so inspect each failure separately; success for the main domain doesn't mean every resource took the same route.

If a request shows a policy such as DIRECT or PROXY, check in Config which rule selected it. If an earlier, broader rule matched the destination, adding a more specific rule later in the file usually won't change the result. Adjust the rule order, save, and send a new request to see whether the change took effect. Long-lived sessions may keep using the old route, so check them separately from new connections.

For DNS failures, distinguish between “name resolution failed” and “connection failed after resolution.” For the first, check DNS settings, the current network, and the requested domain. For the second, also check the destination address, port, and path. Don't assume a single error message identifies every cause. The details in a log may vary by request type; a missing field doesn't prove that a step didn't happen, so consider the other available evidence.

Analyze traffic, battery, and background activity separately

Low traffic alongside high battery use isn't a contradiction. Frequent reconnects, repeated wake-ups, or an unstable network can drain the battery without transferring much useful data. Conversely, downloading a large file in a short time can increase traffic noticeably. Record usage duration, network type, and what you were doing; battery percentage and traffic volume can't be directly converted, and a single screenshot can't establish that the client is malfunctioning.

If you suspect ongoing background activity, check whether On Demand is enabled, whether apps are refreshing automatically, and whether the device is repeatedly switching networks. Compare similar conditions—for example, keep the network and usage pattern the same and change only the On Demand setting. A short test can be affected by system activity; look for a repeatable trend rather than drawing conclusions from a few minutes of fluctuation.

The system battery page may cover a different time period from Data, so align the periods before comparing. For background behavior, see On Demand and battery troubleshooting. The goal is to find unnecessary activity and failed retries, not to reach a particular number. Device models, networks, and usage vary, so there is no single threshold that applies to everyone.

For your own troubleshooting notes, keep the date, network, mode, Config name, reproduction steps, and result. You don't need to retain every request indefinitely. Brief notes are easier to compare and help limit the amount of sensitive information you store. Add detailed logs only when a problem needs further investigation, then review how long to keep them once it's resolved. Keep diagnostic tools separate from everyday use.

07 / SETTINGS & CONFIG

Common Settings and Config file boundaries

Set up On Demand after manual connections are stable

On Demand starts connections when specified conditions are met. It is useful once you've verified a manual connection and want to reduce repetitive steps. It won't fix a server problem; if a manual connection fails, enabling On Demand may simply trigger more retries. First verify the server, rules, and system permissions. Then set conditions for your actual usage and test whether the connection starts and stops as expected.

When setting On Demand conditions, distinguish between wanting the connection to start automatically and wanting it to stay connected. Check the current interface for what each option actually does; don't guess based on its name. Test behavior on Wi-Fi, cellular, when the screen is locked, and after switching networks. Make sure the device doesn't keep reconnecting when you don't need it. During manual troubleshooting, you can pause On Demand to prevent conditions from restarting a connection you've turned off.

If the connection comes back soon after you disconnect, check On Demand and the VPN configuration currently in use before assuming the switch is broken. Note the network state before and after the reconnect, then check whether a condition was met. On public Wi-Fi that requires a sign-in, complete the network's normal sign-in first. On Demand doesn't replace the network's own authentication process.

Don't change DNS, Host, and TLS settings all at once

DNS resolves names; the proxy determines the subsequent connection path. They interact, but they aren't the same thing. If a domain fails to resolve, first check how DNS requests are handled and whether the current network works. Don't change the server, rules, and DNS settings at the same time. Make a change to address a specific issue, such as an unreachable DNS resolver. Retest the same domain and keep the original value so you can restore it.

Host specifies a local name mapping and is useful when you know the destination address and can keep it up to date. A fixed mapping may become invalid when the service changes and can affect access on different networks. Don't keep a temporary address in your Config just to get past one DNS failure. Services with multiple addresses or content delivery networks may not work reliably when pinned to a single address; investigate the original DNS issue first.

TLS settings affect encrypted connections and identity verification. If the certificate name doesn't match, check SNI, server details, device time, and server status. Disabling verification is not a routine troubleshooting step. Server address, Host, and SNI may have different roles; whether they match depends on your actual connection details. Unless your provider clearly specifies otherwise, don't copy these fields from another entry to assemble a new connection.

Understand the roles of Settings and .conf sections

Check app-level options in Settings separately from the contents of a Config file. Before editing, confirm which Config is active and export or copy the original. Then edit each section according to its purpose: General holds global options, Rule organizes matching rules, Host manages mappings, and URL Rewrite handles the relevant request rewrites. These sections aren't interchangeable; an incorrect section name can affect parsing.

[General]
loglevel = notify

[Rule]
DOMAIN,example.com,DIRECT
DOMAIN-SUFFIX,example.org,PROXY
FINAL,PROXY

The example shows section and rule formats only; it doesn't include server details and shouldn't replace a working Config of your own. Before changing an option in General, confirm that the app supports it and that you understand its value. Don't copy entire sections from an unknown Config. Choose a log level based on what you need to diagnose; overly detailed logs retain more information, so restore a suitable everyday setting when troubleshooting is done.

Learn URL Rewrite and other settings that change request behavior later. If you haven't verified basic rule-based routing, adding rewrites introduces more variables and may cause errors unrelated to the connection. If a Config uses HTTPS decryption, understand the certificates and trust implications first; it isn't a setup step for your first connection. Verify the basic connection, rules, and advanced handling in stages instead of enabling everything at once.

Some options may move after a system or app update, so check the current interface. For a detailed explanation of the Config sections, see General, Rule, Host, and URL Rewrite in Config files. Before using an example, identify the problem it solves and decide whether it applies to your setup. More parameters don't necessarily make a Config a better fit for your network.

08 / MAINTENANCE

Subscription updates, backups, and routine maintenance

Check what actually changed after an update

Routine maintenance means keeping your connection details valid—not rebuilding everything frequently. Before updating a subscription, confirm which one you're updating. Afterward, check whether the number or names of entries changed and whether the selected entry is still available. If it was replaced or removed, select another and test it. A successful update only confirms that the list was retrieved; it doesn't test the servers. Updating a server list doesn't necessarily update your rules.

If your service provider changes an address or authentication method, check the new details they provide instead of only renaming the entry. An old address might work temporarily without remaining usable. Test the new details on your current network after importing them. Manual entries may not be changed by a subscription update, so maintain them separately. Avoid keeping multiple similarly named entries from different sources; they can make troubleshooting confusing.

Update the app through the App Store; check the store listing for update details and compatibility. Before updating, consider backing up the Config you currently use. Afterward, check permissions, the selected server, and key rules. If behavior changes, compare the actual settings and app messages instead of relying on memory about what an option “should” do. Track app, subscription, and Config updates separately to help identify what changed.

Back up with both recovery and privacy in mind

Before backing up, decide what you need to restore. A rules file alone may not include server credentials; a server list alone may not include custom groups or app settings. If you use an export or backup feature, check its options to see what is included. Give the backup a descriptive name and note the related Config and save date, but don't put a password or full subscription URL in the filename.

Backup files may contain connection credentials, so store them somewhere protected and under your control. When transferring a file through system file-sharing features or personal storage, make sure the recipient device and account are correct; don't accidentally choose a public sharing location. If you need to share a rules example, create a separate redacted copy instead of sending a complete backup. Other parts of the file may contain credentials or subscription details even if the visible rules do not.

Check that a backup can actually be restored; a successful export alone doesn't prove it's usable. At minimum, confirm that you can find the file, that its contents are complete, and that you know how to import it into the app. When migrating, keep the old device's data until you've imported the backup on the new device and checked the server, Config, and Global Routing, then tested a real request. Don't delete the only working copy before verifying the new setup.

Before changing devices, reinstalling, or returning after a long break

After changing devices or reinstalling, get Shadowrocket from the App Store purchase history for the account that bought it. The App Store listing determines purchase eligibility. Redownloading the app and restoring connection details are separate steps; a purchase record doesn't mean the Config has been restored. After importing a backup, you may also need to grant VPN permission again. Then review the active Config and On Demand conditions instead of assuming the old device's settings still suit the new one.

If you're returning after a long break, first verify the basic network, then check whether your subscription and server details are still valid. Incorrect device time, changed service details, or leftover settings may affect the connection; you don't need to change every rule straight away. Test manually with an existing valid entry, then restore On Demand and other optional settings after it works. Restoring one layer at a time helps distinguish expired details from a device configuration issue.

Before removing an old entry, check whether any group or rule refers to it and confirm that a usable replacement exists. You can clean up duplicates, but don't delete entries just because their names look similar; their protocols or settings may differ. After removing an entry, test your usual destinations to make sure no Config rules still refer to something that no longer exists. The goal is to remove ambiguity and stale details, not to minimize the list at all costs.

If a problem keeps happening, make a brief checklist: whether the app opens, whether the VPN starts, whether the subscription updates, which mode fails, and which destinations are affected. Compare it with the Connection checks and troubleshooting chapter for a more focused next step than repeatedly reinstalling. To retrace the basic setup, follow the Quick Start guide. For purchase or redownload issues, see Restoring a purchase.

Back to the guide contents ↑

Download on the App Store