A rule-based proxy client for iPhone / iPad, available as a one-time purchase on the App Store. Use your own subscription or server details to import configurations, set up rule-based routing, and test connections.
Check App Store compatibility before confirming your purchase account. See the App Store listing for system requirements and whether the purchase is universal. After buying the app, you’ll still need your own subscription or server details.
Official App Store app
App ID932747118
One-time purchase
iPhone
Check the product page in the App Store and complete your purchase. The first time you connect, review the system prompt to add a VPN configuration. Then return to Home, confirm the selected server and Global Routing mode, and test access.
Check your purchased items using the Apple Account used for the original purchase. See the App Store listing to confirm whether the purchase is universal. Landscape and Split View change the available screen space; after importing, check the server, configuration, and connection permission on your device.
Choose a guide based on the issue. Server settings, configuration files, and connection triggers are separate layers. Change one variable at a time when troubleshooting so you can identify what caused the result.
Rule-based routing: Check the match order first
Rules determine which policy applies to a request under specific conditions. In Config, confirm which configuration is active, then check conditions such as DOMAIN-SUFFIX, DOMAIN-KEYWORD, and GEOIP from top to bottom. A broad rule placed earlier may prevent a more specific rule below it from taking effect. DIRECT means a direct connection, PROXY sends traffic through the proxy policy, and FINAL handles requests that match none of the preceding rules. Save the original configuration before making changes, adjust one rule at a time, and test the same destination again. This helps distinguish rule issues from server connection problems.
This example illustrates rule structure. Check your own access needs when choosing policies.
Global Routing: Understand the three modes
Global Routing sets the overall routing mode. The connection toggle alone does not tell you whether a request is going through a proxy. Config applies the rules in the active configuration; Proxy routes applicable traffic through the proxy; Direct uses a direct connection. For rule-based routing, first confirm that Config and the selected configuration file match. To troubleshoot, compare the modes on the same network and destination, then restore your original setting. If the issue occurs only in Config, check rule matches and DNS settings before reimporting the entire subscription.
Global Routing · Config / Proxy / Direct
Interface terms and what to check
ConfigCurrent configuration and rules
ProxyProxy connection path
DirectDirect connection path
On Demand: Trigger connections based on conditions
On Demand triggers connections based on conditions such as the network environment. It does not correct server settings or replace routing rules. First connect manually and verify access. Then open On Demand in Settings, review the available conditions, and configure the Wi-Fi, cellular, or domain criteria you need. Record network conditions before and after testing, and check how multiple conditions interact. If the connection starts again after you disconnect manually, check whether a condition is still being met. When switching networks frequently, watch for repeated reconnections before deciding whether to keep that condition.
Settings · On Demand
Checks to make before configuring
Confirm that a manual connection works and you can access your destination.
Identify the network conditions under which you want connections to start automatically.
Add one condition at a time and test again.
Disconnect and check whether a connection starts again.
Multiple protocols: Enter the parameters you have
Shadowsocks, VMess, VLESS, Trojan, Hysteria2, and WireGuard use different fields and authentication methods. Changing only Type does not make the rest of the settings interchangeable. In Add Server, choose the type that matches your existing server details, then check the address, port, and required authentication fields. Match TLS, transport, and other optional settings to the original configuration. Share links can save manual entry, but check that all fields imported correctly. A protocol name alone says nothing about connection quality, which depends on the settings, server status, and current network.
Add Server · Type
Protocol names
Shadowsocks
VMess
VLESS
Trojan
Hysteria2
WireGuard
HTTP
SOCKS5
GuidelineUse only valid server details you already have.
Importing subscriptions: Lists vs. individual configurations
A subscription link retrieves and updates a list of server details; an individual share link usually describes one server. When managing a subscription you already have in Subscribe, preserve the full URL path and parameters, and give each subscription a recognizable name. After importing, check the list before selecting a server to test. A manual refresh may update or remove existing entries, so keep a separate record of important manual changes. If refresh fails, check the link, whether it’s reachable on your current network, and whether the response uses a supported subscription format. Don’t import an error page as a configuration.
Subscribe · Add Server
Subscription link format example
https://example.com/sub?token=xxxx
This is a format example only and cannot be used to connect. Real links may contain access credentials and should not be shared publicly.
Diagnostic tools: Narrow down the source of an issue
A connected status only reports the connection state; it does not confirm that a destination is reachable. Start with Connectivity Test to check connectivity using the current configuration, then review available diagnostic details in Diagnostics under Settings and use Data to monitor traffic. Compare results on the same network using the same test method; a single latency reading is not a complete diagnosis. If all servers fail, check the device’s network and connection permission first. If only specific destinations fail, check the rules and DNS resolution. Before sharing logs, redact subscription parameters, server addresses, and authentication details.
Connectivity Test · Diagnostics · Data
Check from the outside in
Device networkVerify basic connectivity first
Server connectionCheck settings and test method
Rules and destinationCheck rule matches and DNS resolution
Verifying the app, purchasing, and configuration basics
This is the Shadowrocket Official Site and official guide. Getting the app, restoring a purchase, and maintaining connection settings are separate processes. Identify which step you’re on, then follow the relevant instructions.
Check the developer, official icon, and app ID
Shadowrocket is a closed-source commercial app available exclusively on the App Store. On the product page, confirm the name is Shadowrocket, check that the developer is Shadow Launch Technology Limited, and verify the app ID in the product URL is 932747118. Also compare the official icon shown in this site’s header: a blue-purple outlined rocket on a white background. Don’t rely on shortened names or similar-looking icons in search results; check the name, developer, icon, and app ID together on the same product page.
Check the product page for pricing, compatibility, system requirements, and update history. Search result summaries may omit important details, and an older page saved on your device may not be up to date. Use the App Store page you open when confirming your purchase. If the store says your device isn’t compatible, review the compatibility section; importing a subscription or changing connection settings won’t resolve a compatibility issue.
One-time purchase and current pricing
The U.S. reference price is $2.99 as a one-time purchase. Other storefronts display local currencies; the App Store purchase confirmation shows the actual price. Before buying, check the Apple Account and storefront region you’re using to avoid confusing purchase records from different accounts. Product availability and payment options depend on the current storefront and account status. Server settings in the app don’t affect whether the product appears in the store.
If you’ve purchased the app but no servers appear in Home, distinguish between having the app and having imported connection settings. Check the instructions for Subscribe, Add Server, or Scan QR Code instead of buying the app again. Likewise, a subscription link does not replace purchasing the client on the App Store. The two have separate accounts, validity periods, and maintenance processes.
Moving devices, reinstalling, and restoring purchases
When switching devices or reinstalling, first confirm in the App Store that you’re using the original purchasing account, then look for Shadowrocket in that account’s purchased items. See the App Store listing to confirm whether the purchase is universal for iPhone and iPad. Check the product page and family settings in your account to see whether Family Sharing applies. If the app isn’t in your purchased list, check your purchase history and account rather than judging by whether its icon appears on the Home Screen.
Check app restoration and configuration restoration separately. Being able to download the client again doesn’t mean every manually added server or local configuration file will automatically transfer to a new device. Before migrating, record subscription names, configuration files, and essential settings. If the app offers iCloud sync, check that it’s enabled and complete. After migration, verify each item and test the connection. Keep backups containing authentication details somewhere you control.
First import and connection test
For your first setup, import just one subscription you already have, or use Add Server to add one known-good server. Subscriptions work well when you need to refresh a list as provided; manual entry lets you check each field; Scan QR Code and clipboard import are useful when you already have share links. Whichever method you use, check Type, Host, Port, and the relevant authentication fields after saving. Make sure copying didn’t add spaces or line breaks or omit parameters.
After importing, select the server you want to test in Home and check Global Routing. To route traffic according to a configuration, select Config and confirm the active configuration file. Don’t assume that importing a server list also enables a rules file. Then turn on the connection and review the system prompt to add a VPN configuration. System permission allows the required connection configuration; it does not verify your server details. You still need to test access.
First confirm that your device has network access, then run Connectivity Test and visit a destination whose purpose you know. If the test fails, keep other settings unchanged and check the selected server details and connection status. If only one destination fails, check the rule match and DNS. Changing the server, rules, DNS, and On Demand all at once makes it difficult to identify the cause. See the first import and connection guide for the full process, or subscription and server management for managing multiple entries.
Subscription refreshes, app updates, and routine management
App Store updates apply to the client; refreshing in Subscribe updates the server list returned by your existing subscription; changes in Config affect rules and other configuration behavior. Keep track of these changes separately. If behavior changes after an app update, first check whether your current selections are unchanged. If a server disappears after a subscription refresh, check the subscription response before attributing it to an app update.
When managing multiple subscriptions, use names that identify their purpose rather than leaving several hard-to-distinguish default titles. Use the same test method when comparing performance or sorting servers. A latency reading reflects one measurement under specific conditions; it does not mean every request will get the same result. Before deleting old entries, check whether you still need their manual settings. When backing up, distinguish subscription links, individual servers, and complete configuration files so you don’t mistake a partial backup for a complete one.
When sharing troubleshooting details, include the network type, Global Routing mode, test method, and steps to reproduce the issue. Redact access parameters, passwords, and other credentials from subscription links first. The example https://example.com/sub?token=xxxx shows a format only and must not be imported as a real configuration. If an update fails, check that the link is still valid, then check the current network and response format. Only then consider removing and adding it again.
Frequently asked questions
Why can’t I connect after purchasing the app?
Buying the client and preparing connection settings are separate steps. Confirm that you’ve imported a subscription or server successfully and selected a server, then check Global Routing and system connection permission. An enabled toggle still doesn’t confirm access. Follow the FAQ connection troubleshooting steps to check each layer.
What’s the difference between a subscription link and a share link like ss://?
A subscription link usually returns a server list that can be refreshed; share links such as ss://, vmess://, vless://, and trojan:// usually describe a single server. A successful import doesn’t mean they update in the same way. Identify the link type before organizing your configurations. See share links and subscription management.
Do my existing rules still apply when I switch to Direct?
Direct is a direct-connection mode in Global Routing; it isn’t the same as adding a DIRECT rule in Config. To route traffic according to a configuration file, switch back to Config and check which file is active. Restore your original setting after testing different modes. See the Global Routing setup guide for details.
Why do I need to check my configuration after moving to iPad?
Restoring an App Store purchase gets you the app; migrating configuration transfers server and rules data. Even with the same purchasing account, check what was actually restored on the device, whether you need to authorize the connection again, and which configuration file is selected. Read the guide to restoring purchased items before testing the connection.
Technical notes: Choose a topic to continue
After completing the basic import and connection test, move on to device transfers, link formats, and automatic connection conditions. Each note focuses on one issue so you can keep your original settings and test changes one at a time.
Find the app in your purchased items, distinguish purchase restoration from configuration migration, and check where controls appear in landscape and Split View. See the App Store listing for universal purchase availability and system requirements.
Tell individual server share links apart from refreshable subscription lists, understand link fields and what to check after importing, and avoid assuming an import will refresh automatically.
Once manual connections work, review trigger conditions, how multiple conditions interact, and how to test them to find out why a connection starts again after you disconnect manually.