Check your Shadowrocket purchase record, servers and subscriptions in Home, rule configs in Config, and behavior settings in Settings separately. This guide is for anyone moving to a new iPhone or using both an iPhone and iPad. Save a recoverable copy on the old device, check that iCloud is available, then restore and verify everything on the new device in order. The steps assume you already have your own provider and subscription.
1. Separate your purchase record, subscription, and config files
Getting the app again from the App Store restores your eligibility to use the client; it does not restore all in-app data. Shadowrocket is a closed-source commercial app sold as a one-time purchase. Buying the client does not include a service plan. This site does not provide, sell, or recommend servers or subscriptions. Treat getting the app again and restoring your own connection details as separate tasks.
Home is primarily for viewing servers, subscriptions, and connection status. Config is where you manage and select rule configs, while Settings contains behavior options to check separately. A rule config may include General and Rule sections without including every subscription link in Home, passwords for servers added individually, or the currently selected setup. So don’t erase the old device just because you’ve exported a file.
- Purchase record: Linked to the Apple Account used for the purchase; it is not a config backup.
- Subscription URL: The source for retrieving the server list. Having the current list without its URL does not mean it can still be updated.
- Local config: Includes your own rule edits. Don’t save only the remote config URL and overlook local changes.
- Device state: VPN permission, current selections, and automatic connection conditions need to be checked again on the new device.
2. What iCloud sync and manual export each do
iCloud makes data supported by the app available across devices. It depends on the right Apple Account, iCloud Drive, app permissions, available storage, and a network connection. Sync is not a fixed-time archive: changes or deletions to shared data may also reach other devices. Keep a separate copy before moving to a new device.
Manual export saves a file as it exists at a particular moment. It’s useful for preserving local rule edits and comparing them after import. What gets exported depends on the selected item and export function; exporting one file from Config is not a full app backup. Saving a file to iCloud Drive only chooses where to store it—it does not enable the app’s own data sync.
Transfer plan: use sync to continue, export to keep a copy
iCloud sync
- In system Settings, go to Apple Account → iCloud and check iCloud Drive and Shadowrocket’s access permissions.
- Check the iCloud options currently available in Shadowrocket’s Settings and confirm what data is actually synced.
- Once the data appears on the new device, compare file contents and subscription sources as well.
Manual export
- In Config, share or export the local files you want to keep.
- Use the system share sheet to save a copy to Files before the transfer.
- Separately save existing subscription URLs and details for manually added servers not included in the config file.
Verify the content you can actually access on the new device. Signing in with the same account or enabling sync does not mean restoration is complete.
3. Backup steps for your old iPhone
Before backing up, pause bulk edits and deletions. Confirm the current connection works, and note the Global Routing selection in Home and the file currently in use in Config. If you plan to update a subscription, save its original source details first. An update may change server names, counts, or order, so the updated list cannot tell you what was on the old device before the transfer.
-
Record the current setup
Open Home and note the current server and Global Routing selection. Then open Config and note the name of the file in use. Go to Settings → On Demand and record whether it’s enabled and which conditions are set.
-
Save subscription sources
In Home, open the details for each existing subscription and save its original URL somewhere safe. If the address is no longer visible, retrieve it from your own saved records. Don’t mistake a server’s share details for the whole subscription.
-
Export local files
In Config, find the local file you want to back up. Use its action menu to share or export it, then save it to Files using the system share sheet. The gesture and label depend on the current interface. Don’t select Delete or copy only the remote URL by mistake.
-
Check the file contents
Make sure the exported file is readable and still contains your Rule edits. If the config references external rules or remote configs, save those URLs separately; saving the main file does not save external content along with it.
-
Verify sync
Check your iCloud permissions and available storage, then wait for the data to sync and verify it on another device. If you can’t verify it right away, keep the exported file, subscription sources, and old device. Don’t erase the old device yet.
Treat backup files as sensitive dataTokens in subscription URLs, server passwords, and keys may grant connection access. Don’t post complete files in public forums or upload them to unfamiliar parsing sites. You can use a name combining the purpose and backup date to tell files apart, but never put passwords or tokens in the filename.
4. Restore on your new iPhone: app, data, rules, and permissions
Get Shadowrocket again from the App Store first. Sign in with the Apple Account used for the purchase and find it in your App Store purchase history; system menu names may change. Verify the developer is Shadow Launch Technology Limited, the app ID is 932747118, and the icon matches the official icon shown on this site. For iPhone, iPad, and other compatible devices, check the App Store listing for system requirements.
Don’t re-add every subscription as soon as you see an empty list. First check whether iCloud is still syncing, then decide which items need to be imported. Otherwise, synced data may arrive later and duplicate items you added manually, leaving duplicate groups and making their sources harder to identify.
- Check synced content: Open Home and Config to review the server list and local configs separately. Compare names and key details, not just item counts.
- Restore subscriptions: If a source is missing, tap “+” in the top-right corner of Home to open Add Server. Select Subscribe for Type, enter your saved URL, and save it. Then update that subscription. Don’t enter a subscription URL in a regular server address field.
- Restore local configs: Find your backup in Files and send it to Shadowrocket from the share sheet. If that option isn’t available in your system, use the file import option in Config. After importing, make sure the file is readable in Config and select the config you want to use.
- Check routing mode: To route traffic by rules, go to Home → Global Routing and select Config. Proxy and Direct do not apply the current Rule entries individually. If you use Scene, also check which policy that scene actually applies.
- Grant device permission: The first time you connect, follow the system prompt to allow adding a VPN configuration. Permission on the old device does not grant it on the new one. Check the connection status after granting permission.
- Restore automatic connection last: Test a manual connection first, then go to Settings → On Demand and restore the conditions you need. This makes troubleshooting easier.
5. Use two checklists to verify the transfer
Check connectivity and rule behavior separately. A successful subscription update means content was retrieved that time; it doesn’t mean every server in it can connect. A working server also doesn’t confirm that the right config is active. Start with a server you already know works, then verify both sets of details below.
Connection details
- Subscription source
- The URL matches the old device’s record, and the update completed without authentication or parsing errors.
- Server details
- The address, port, and authentication details match your original records. Use the actual port number from your own setup.
- Protocol settings
- Restore Shadowsocks, VMess, VLESS, Trojan, Hysteria2, and WireGuard as their original types. Don’t swap authentication fields.
- Current selection
- The server selected in Home is the one you expect; it’s not enough for it to appear in the list.
Restore subscription-generated entries through their original subscription first. Check the saved details of manually added entries one by one.
Rules and behavior
- Config file
- The restored file is selected in Config, and your local edits are still there.
- Routing mode
- Home → Global Routing → Config to test the rules in the current file.
- Rule order
- Specific matching rules come first, with FINAL later. Make sure policy names match the policies currently in use.
- Automatic connection
- The conditions in Settings → On Demand match how you use the new device.
Having the same config file doesn’t guarantee identical device behavior. Check system permissions and connection conditions separately.
For example, if the old config contains the rules below, make sure all three remain after restoration and that FINAL hasn’t been moved ahead of them. example.com is only there to illustrate the syntax; it is not a test site you need to visit. PROXY should point to a proxy policy available in the current config. When testing your own rules, use a destination with an outcome you already know.
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
FINAL,DIRECT
DOMAIN-SUFFIXmatches the specified domain and its subdomains. Don’t judge whether it matched solely by whether a page loads.IP-CIDRmatches an address range. In this example,no-resolvemeans the rule won’t trigger an extra domain lookup.FINALhandles traffic that didn’t match an earlier rule. Changing its position or policy can affect many connections.- If the original config also has
GEOIPor remote rule references, keep their original order and references. Don’t replace the full config with this shortened example.
6. Common transfer issues and what to check
Why is the new device empty even though I’m using the same Apple Account?
First, distinguish your App Store purchase account from your system iCloud account; they may be different. In system Settings, go to Apple Account → iCloud and check iCloud Drive, app permissions, and available storage. Then check Shadowrocket’s sync options and what they cover. Restore any data that still hasn’t appeared from the files and source details you saved. Don’t delete anything from the old device yet.
I imported a config. Why are there no servers in Home?
First, check what the imported file contains in Config. A rule config and the server list in Home are separate items. If the file contains only sections such as General and Rule, restore the source using your original subscription URL or add your own server details. Importing the same rule file repeatedly won’t restore a missing subscription.
I can connect after restoring, but routing differs from my old device. Why?
Check these three places in order: Home → Global Routing → Config, the file currently selected in Config, and the Rule order. Then check whether remote rules were retrieved successfully and whether policy references are still valid. Change one thing at a time and reconnect so you can identify the cause; updating subscriptions and replacing rules at the same time makes troubleshooting harder.
There are two identical subscriptions on the new device. Which one should I delete?
Check the source URLs and update status of both entries first. Confirm that one came from sync and the other was added manually, rather than representing two different sources. Keep the one that updates correctly and has complete details. Before removing the duplicate, check whether the current server or rule policies refer to it.
When is it safe to erase my old iPhone?
Wait until the new device has completed a subscription update, a manual connection test, and a rule behavior check, and you’ve confirmed the exported file is still readable. If you still need the old device to look up a password, subscription URL, or local rule, the transfer isn’t complete. Keep an independent backup; synced copies on two devices are not two separate archives.