Purchase, setup, and connection for a rule-based proxy client on iPhone / iPad, with rule-based routing and a one-time purchase on the App Store. Start with your existing configuration, then check the connection.
Global RoutingTrojanVLESS
Check the App Store listing for system requirements and purchase eligibility.
APP STOREONE-TIME PURCHASERULE-BASED ROUTINGIMPORT EXISTING CONFIGURATIONSON DEMANDAPP ID 932747118
How to get Shadowrocket / Verify first, then purchase
Official App Store listing
Shadowrocket is a paid app released exclusively on Apple platforms, and the App Store is the only place to get it. On the product page, check the app name, developer, and app ID, then confirm the price and compatibility shown for your storefront. This guide walks through verification, purchase, first launch, and restoring a previous purchase.
After purchasing Shadowrocket on the App Store, open the app and import your existing server details. When you connect for the first time, review and approve the system prompt to add a VPN configuration. After authorization, check your configuration and connection status.
One purchase covers iPhone and iPad, subject to the eligibility shown on the App Store listing. Use the Apple ID used for the original purchase to find it in your purchases. After reinstalling, check your subscriptions, Config files, and currently selected server separately.
Shadowrocket is also available from the same App Store on Mac and Apple TV. Check the App Store listing for compatibility, system requirements, and purchase eligibility.
Shadowrocket features and configuration options
Importing servers, choosing a routing mode, and checking a connection are separate steps. Identify what you need to change before opening the relevant settings; protocol parameters, routing rules, and system On Demand conditions are not interchangeable.
[Rule] and Global Routing
Rule-based routing lets different requests use different handling methods. Check Global Routing on Home: Config applies the selected configuration, Proxy uses proxy mode, and Direct uses a direct connection. To use rules, select Config and confirm which file is enabled. Rules in the file's [Rule] section are generally evaluated in order, so put more specific rules before broader ones. PROXY, DIRECT, and REJECT mean proxy, direct connection, and reject; FINAL handles requests not matched by earlier rules. The example on the right shows syntax only and is not a complete configuration.
On Demand asks the system to establish a connection when configured conditions are met. Find it in Settings. First confirm that an existing server works with a manual connection, then check the On Demand options and current network conditions. If a manual connection fails, troubleshoot the server and configuration first. On Demand and Global Routing serve different purposes: the former determines when a connection is triggered; the latter determines how traffic is handled after connecting. After changing conditions, test both connection and disconnection behavior on the networks you use, and check the system VPN status. An enabled switch alone does not confirm that a request completed successfully.
Settings
On Demand
Home
Global Routing
Verify the manual connection first
Then check the trigger conditions
Check fields by Type in Add Server
Shadowrocket supports protocols including Shadowsocks, VMess, VLESS, Trojan, HTTP, SOCKS5, WireGuard, and Hysteria2. To add a server manually, choose the Type in Add Server that matches your existing details, then check the address, port, authentication, and transport settings field by field. Available fields vary by Type; do not reuse one protocol's parameters for another. TLS, server name, and transport path can also affect the handshake, so use the details provided by your service provider. After importing a share link, check the key fields; the protocol name alone does not indicate speed or availability.
Add Server
Type
Host
Port
Shadowsocks / VMess / VLESS
Trojan / HTTP / SOCKS5
WireGuard / Hysteria2
Subscribe and your server list
Subscriptions let you manage server details in batches; get existing subscriptions from your service provider. After adding one through Subscribe, confirm that it was fetched and that its entries appear in the list, then select a server to test. Updating a subscription may change names, parameters, or the number of entries, so check the selected item again afterward. A successful refresh does not mean every server can connect. If you manage multiple subscriptions, use descriptive labels to tell them apart, and don't mistake a single-server share link for a subscription URL. Subscription links often contain access credentials; keep them secure and never share the full link when troubleshooting.
Subscribe
Add an existing subscription
Refresh server details
SERVER
Check groups and labels
Select an entry and test it
Manage Config files and servers separately
A Config file describes how requests are handled, while a server entry stores the information needed to connect to a remote server. They are separate items. In Config, inspect the file and confirm which one is enabled. Keep a working copy before making changes, then test in Config mode under Global Routing. Before changing sections such as [General], [Rule], or [Host], understand what each setting does. To sync configurations through iCloud, first check the relevant in-app options and the device's iCloud status, then verify the actual content on the other device. Reinstalling the app or completing a sync does not replace this check.
Connectivity Test shows connection performance under the test conditions, and the Test Method in Settings affects how to interpret the result. A lower test value does not mean higher sustained transfer speeds; interpret timeouts in light of the test method and network conditions as well. Traffic records in Data can help confirm whether data is passing through, but they cannot by themselves prove that a particular website used the expected route. When troubleshooting, note the current server, Global Routing mode, and local network, then review the available information in Diagnostics. Change one condition at a time and compare results. Before sharing diagnostic information, remove addresses, authentication details, and subscription credentials.
Home
Connectivity Test
Settings
Test Method
Diagnostics
Data
Traffic records
Check the routing mode before troubleshooting rules
If you edited rules but traffic behavior did not change, first check Global Routing on Home. In Proxy or Direct mode, you cannot explain the result by how Config rules match. After confirming the mode, check the active Config file, rule order, and the domain or address of the actual request. Avoid deleting the entire configuration as a first step.
Verify connection status and service access separately
The system's VPN status is only one indicator of connection state. Also open the service you need and consider the test, traffic records, and diagnostic results together. Server authentication, DNS, rules, and the local network can each affect the outcome. Keep the original configuration and change one thing at a time to identify the source of the problem.
These steps assume you already have your own subscription or server details. Import them first, choose a mode, then verify the connection. If something goes wrong, return to the relevant step instead of changing everything at once.
01 / Import details
Add Server or Subscribe
Add a single server manually with Add Server, or use an existing share link or Scan QR Code. Import server details in batches through Subscribe. Get the address, port, password, and other authentication details from your service provider. Identify the type of information before choosing an import method; don't paste an entire configuration file into the server address field.
After importing, check the SERVER list for the protocol, label, and required parameters. An entry in the list only means the information was saved; it does not prove the remote service is available. Multiple entries with the same name can lead to mistakes, so label them clearly before testing. See the server management guide for the steps to check QR code and clipboard imports.
Config is configuration mode, Proxy is proxy mode, and Direct is direct-connection mode. To use rule-based routing, select Config and check which configuration file is enabled. Proxy can help you observe a connection through the proxy, but it is not rule-based routing; results in Direct mode do not show whether the remote server is working properly.
The server list determines which connection details are available; Global Routing determines how traffic is handled; Config contains the specific rules. Understand the difference between these three before checking whether rules are working. Importing a subscription does not necessarily provide a rule file suited to your needs; check what is actually enabled.
Select a server and turn on the connection switch. The first time, the system may prompt you to add a VPN configuration. Confirm the prompt is part of your current action, then complete authorization as directed by the system. Return to the app to check its status, run Connectivity Test, and open the service you need. Testing and checking actual service access separately is more reliable than looking at the switch alone.
If you cannot connect, first check whether the subscription is up to date, whether you selected the right server, and whether the authentication details are complete. Then compare results over Wi-Fi and cellular networks. If only some requests fail, check Global Routing, rules, and DNS. Record what happens and troubleshoot one item at a time instead of reinstalling repeatedly while keeping the same incorrect settings.
Shadowrocket is a closed-source commercial app. This is the Shadowrocket official website and manual. Use the App Store product page to verify purchase and availability details, and follow the app and system prompts on your device for the exact steps.
DeveloperShadow Launch Technology Limited
App ID932747118
One-time purchase
Verify all three details
Open the product page on the App Store and check the name Shadowrocket, the developer Shadow Launch Technology Limited, and id932747118 in the store URL. The app icon should match the official icon in this site's header. A matching name or search result ranking is not enough: if you see similar names, open the product page and check each detail rather than relying on the first search result.
After following the App Store button on this site, make sure you are still on the correct product page before purchasing. Check the developer, icon, and app ID together. For price, system requirements, purchase eligibility, and update history, refer directly to the App Store listing rather than relying on descriptions elsewhere that may be out of date.
Storefront availability and purchase requirements
Check the App Store for whether the product is available to purchase in your current account's storefront. If it does not appear in search, open the product page to check availability, then review the account and storefront used for media and purchases. Follow the App Store prompts to resolve payment or device compatibility issues. Being able to open the webpage does not mean your account is eligible to purchase the app.
The US App Store reference price for Shadowrocket is $2.99 as a one-time purchase; other storefronts show prices in local currencies. The amount charged is shown on the purchase confirmation screen. One purchase covers iPhone and iPad, subject to the eligibility on the App Store listing. Do not assume other devices are eligible based on their name alone.
Restoring a purchase does not restore your configuration
When switching devices or reinstalling, use the Apple ID from the original purchase to find the app in your App Store purchases or on its product page. If you see a purchase prompt, first check that the current account matches the purchase record before proceeding. The App Store manages app purchase records; Config files, server details, and subscription credentials need to be checked separately.
After reinstalling, check the SERVER list, active Config file, and Global Routing before trying to connect. If you use iCloud sync, verify the actual content on the destination device; sync status is no substitute for checking key settings. Keep a copy of your existing configuration before restoring to avoid repeating setup after accidental deletion or overwrite.
App purchase ≠ network service plan
Purchasing Shadowrocket gives you the right to use the app; it does not include a server or subscription. This site does not provide, sell, or recommend nodes or subscriptions. Get existing subscriptions and server details from your service provider. After importing them, check the authentication settings, service status, and coverage yourself; app purchases and these details are managed separately.
App updates are delivered through the App Store, where you can check the release notes. Updating a subscription refreshes server details, while editing Config changes rules and other configuration content; these are different actions. If something goes wrong, identify which layer changed before deciding whether to update, restore, or adjust settings. A failed subscription does not mean you need to purchase the app again.
Understand what the settings mean before changing them. These notes cover how to troubleshoot speed issues in layers, Hysteria2 transport characteristics, and the details to check for different protocols. A protocol name does not guarantee speed or stability.
When speeds are slow, distinguish latency tests from sustained transfer, then compare the server, time of day, protocol settings, and local network one layer at a time. Record each result and avoid mistaking a brief fluctuation for a configuration issue.
Learn how Hysteria2 uses QUIC and UDP, and how to distinguish high latency, packet loss, and networks that restrict UDP. Understand the prerequisites before reviewing parameters, then check the details of your existing server.
Start with protocol types and common fields to understand the roles of addresses, ports, authentication, transport, and TLS. Check the parameters after importing; a protocol name alone does not tell you whether the server details are complete.