For iPhone and iPad, with a one-time App Store purchase. Import your existing connection details first, then configure rule-based routing and On Demand connections.
See the App Store listing for compatibility and system requirements.
CONFIGURATION / ROUTING / DIAGNOSTICS
Connection details, routing modes, and match order
First check whether a connection can be established, then determine how requests are routed. Each of these six topics focuses on a different checkpoint, helping you pinpoint issues without changing several settings at once.
Global Routing: Choose a routing mode first
Check Global Routing on Home. Config mode routes requests according to the rules in the active configuration. Proxy mode sends applicable requests through the selected proxy, while Direct mode connects directly. To verify your rules, select Config and confirm which configuration is active; otherwise, rule changes may not produce the expected result. You can switch modes temporarily for comparison, but this does not replace checking your server settings. When testing is complete, restore your preferred mode and check which rule matches the target request.
On Demand starts connections when specified network conditions are met. Set it up after you have confirmed that a manual connection works. Open On Demand in Settings and review the conditions for Wi-Fi, cellular networks, and domains, then configure each one for your use case. If the connection starts again after disconnecting, check whether the trigger conditions are still met instead of repeatedly deleting servers. For troubleshooting, temporarily turn off On Demand, test a manual connection, then restore your original conditions. Network changes can affect test results, so note the network and trigger conditions used.
Rule-based routing: Matching stops at the first rule
Check Rule in Config. Rules are evaluated in order, so a broad condition near the top can take precedence over a more specific one below it. When a rule matches, its policy is applied. DOMAIN-SUFFIX matches domain suffixes, IP-CIDR matches address ranges, and FINAL handles requests that did not match an earlier rule. First decide whether the request should use PROXY, DIRECT, or REJECT, then check the rule order and policy name. Examples illustrate syntax only and may not suit every network. Any policy referenced by a rule must be available in the active configuration.
Import subscriptions: Check the source and update results
If you already have a subscription, choose Subscribe in Add Server and enter its URL. After importing, check that the expected entries appear, then select one and run Connectivity Test. Updating a subscription refreshes connection details; it does not automatically replace all rule configurations. A failed update does not necessarily mean saved entries have stopped working. Check that the URL is complete and still valid, and that your current network can reach it. Subscription URLs may contain access credentials, so hide the full URL and sensitive parameters before sharing logs or screenshots.
Config: Understand configurations and server details
Config manages rules and related settings; server details describe how to establish a connection. They serve different purposes. Before editing, keep a working copy of your configuration, confirm which one is active, and review sections such as General, Rule, and Hosts. Change one specific item at a time so you can compare results and revert if needed. If you use iCloud sync, check the account on each device, sync status, and the configuration actually selected. Files with the same name do not guarantee that the active routing mode is the same. After syncing, recheck the selected server and Global Routing before connecting.
Connectivity Test checks the test response for the selected entry. Results depend on Test Method, your current network, and server status, so they are not a direct measure of real-world browsing speed. After connecting, use traffic records in Data and relevant information in Diagnostics to see whether requests are being made. If the test passes but access fails, check rules, DNS, and the destination site. If it times out, first verify the address, port, authentication, and system time. Compare tests under the same conditions; results from different test methods are not directly comparable. Do not delete connection details based on a single result.
Shadowrocket supports connection types including Shadowsocks, VMess, VLESS, Trojan, Hysteria2, and WireGuard. Support for a protocol does not mean that arbitrary connection details are interchangeable: Type, Host, Port, authentication, and transport parameters must match the server information you already have. Choose the type specified in your details and enter each parameter carefully. Do not troubleshoot the same connection by switching protocols at random.
This rule diagram shows the decision process, not the app interface. For a request to example.com, evaluation continues to DOMAIN-SUFFIX only if the first two conditions do not match. If it matches, PROXY is applied and evaluation does not continue to FINAL. In a real configuration, also consider the resolved address, rule order, and whether the policy is available.
Devices and App Store
Getting Shadowrocket on iPhone and iPad
Shadowrocket is available only through the App Store. Verify the product and purchasing account, then install it and complete the first connection authorization on your device. Buying the app and obtaining connection details are separate steps.
iPhone
Start on Home to import your details and make your first connection. Check App Store compatibility before installing. The first time you start a connection, iOS asks for permission to add a VPN configuration. Confirm that you initiated the request in Shadowrocket before granting permission, then return to the app and check the connection status.
If you already purchased the app with your current account, check your App Store purchase history first. See the App Store listing for system requirements. Installing the app does not provide server details.
You can use the same Apple ID purchase on both iPhone and iPad; see the App Store listing for the applicable purchase terms. On iPad, still check that your existing details were imported, the right server is selected, and Global Routing is set as expected.
The larger display does not change the top-to-bottom rule matching order. Even if your configuration syncs through iCloud, check VPN configuration permission and current network conditions separately on the device.
Verify Shadowrocket and understand the one-time purchase
Shadowrocket is a closed-source commercial app. This is the official site and guide; use the App Store product page to verify availability and purchase details. Instructions retain the app’s English interface labels. Check the developer, official icon, and app ID together. Do not rely on the name in search results alone or identify the app by a similar-looking icon.
App ID 932747118
One-time purchase
Available on the App Store
Cross-check the developer, icon, and app ID
The developer should be Shadow Launch Technology Limited. The official icon is the white icon with a blue-purple outline shown on this site. The app ID in the product page URL should be 932747118. After verifying these details, review the price and compatibility information.
If you start from search results, open the product page and check the developer field first; a similar name alone does not confirm that it is the same app. The app ID identifies the product, while the storefront region affects availability, local currency pricing, and purchase terms. These are separate details. The App Store & Purchase guide brings together the checks to make before buying.
App Store region: Check your purchasing account if the app does not appear
The apps shown in the App Store depend on the country or region of the Apple ID used for Media & Purchases. Using a device in Chinese or setting its system region to a particular location does not mean the storefront account is in that same region. If Shadowrocket does not appear in search, first check the current purchasing account and its storefront region rather than repeatedly changing search terms or relying on the device language.
In Settings, open your Apple ID page, select Media & Purchases, and check your account and country or region. Then return to the App Store to see whether the product page is available. Changing an account’s region may involve account balance, existing subscriptions, and payment requirements; follow the requirements shown by Apple. Opening a direct product link does not change the account’s storefront. For availability messages, follow the reason shown in the App Store. See the full checklist in the App Store availability guide.
One-time purchase: You’re buying a license to use the app
The US storefront lists a one-time purchase at $2.99; prices are shown in local currency in other storefronts. See the App Store listing for the current price and purchase terms. Before buying, check device compatibility and the account you’re using; payment is handled by the App Store. Do not assume the amount shown on a webpage is the final charge for your account, or confuse the app price with the cost of connection services.
This distinction also matters when troubleshooting a failed connection: an App Store purchase record confirms the app purchase, not that a server address, authentication details, or subscription validity has been checked. If the app opens normally but no server is available to select, check whether you imported your details. If an entry is present but cannot connect, check its settings and your network. Buying the app again will not fix invalid connection details.
New device or reinstall: Restore the app and configuration separately
After switching devices, first make sure the App Store is using the account that originally purchased the app, then look for Shadowrocket in your purchased items. Your purchase entitlement and data saved locally on a device are separate. After reinstalling the app, check whether your subscriptions, server entries, and configuration files have been restored. If you used iCloud sync, verify the account signed in on the device and the sync results before importing again, to avoid creating duplicate entries that are hard to distinguish.
If the App Store still shows a price instead of an option to redownload, check your account, the product ID, and your purchase history before paying again. Family Sharing availability depends on the App Store listing and your family settings; another family member’s purchase does not guarantee that you can restore the app on your device. Verify purchase records, Family Sharing eligibility, and VPN permission on the device separately. See the restore purchases guide for the full sequence.
Updates and device state: Check what is actually enabled
App updates are managed by the App Store; see its listing for system requirements. Interface locations may change, so identify labels such as Home, Config, and Settings before looking for the relevant option. If an option has moved, use its function and the labels currently shown in the app as your guide rather than relying on button positions.
Keep a working copy before editing a configuration, and note the current server, routing mode, and network type. If behavior changes after an update, first check whether Global Routing is still set as intended, then review the active configuration and On Demand conditions. Avoid changing the test method, rules, and server authentication all at once. Change one variable at a time to see what affected the result. Traffic information in Data can help show whether requests are being made, but it does not confirm that every destination is accessible.
Common questions: Choose the next step by symptom
Why do I need to select a server after importing a subscription?
Importing saves existing connection details in the app; selecting a server determines which entry to use for the connection. First check that the update completed and the entries are complete, then select one and run Connectivity Test. After testing, check Global Routing and the active configuration. The number of subscriptions or visible entries does not prove that a connection works. Follow the getting started guide through a complete connection instead of repeatedly importing the same details to narrow down the issue.
Why does a request still fail when the connection shows as active?
The connection status reflects only part of the connection process. Access to a destination also depends on rules, DNS, server reachability, and the destination service. First check whether other requests work, then review the rule and policy matched by the failed request. Do not delete your entire configuration right away. Keep the test case and current settings so you can reproduce the issue, then follow the verification sequence in the getting started guide to distinguish a connection failure from a failure affecting a specific request.
Does Connectivity Test show my connection speed?
Results depend on Test Method, the test target, and network conditions at the time. They cannot be converted directly into real-world download speeds or guarantee access to every site. For comparison, use the same network and test method, then test the destination you actually need to access. If tests repeatedly time out, check Host, Port, authentication parameters, and system time before concluding that the entire configuration has failed. See the connection testing guide for steps.
Where should I start if the connection reconnects automatically after disconnecting?
Check On Demand in Settings first and see whether the current network meets the automatic connection conditions. To troubleshoot a manual connection, temporarily turn off the relevant triggers, test, then restore the conditions you need. Automatic reconnection and subscription updates are separate mechanisms; deleting existing servers is not the answer. Establish a repeatable baseline using the manual connection steps, then restore the automatic conditions one at a time.
Official Guide · Articles
Guides to App Store availability and connection issues
Choose a guide based on what you’re experiencing: an app missing from App Store search, a first-time authorization prompt, or a server test that times out. Identify whether the issue occurs during purchase, system authorization, or connection, then follow the relevant checklist.
Start with the conditions used for Connectivity Test, then check the address, port, authentication, and protocol parameters one by one. Verify the device’s time and time zone as well. Distinguish a test timeout from a failed request, and record each result so you can identify what changed.
Learn why iOS asks for authorization the first time you connect and how that permission relates to the VPN configuration in Settings. If you tapped Don’t Allow by mistake, deleted the configuration, or cannot complete the connection toggle, check the authorization step before troubleshooting server details.
Understand the difference between system region, device language, and the storefront linked to your purchasing account. Learn how to check the current account under Media & Purchases. Follow App Store messages to review availability and purchase terms instead of assuming a missing search result is caused by device settings.
Once you have a manual connection working, explore On Demand and background battery use. Whether to use On Demand depends on how often your network changes and your actual usage; a single battery screenshot is not enough to decide.