This guide is for people already using Shadowrocket on an old device and preparing to move to a new iPhone or iPad. Follow this order: note your Home and Settings, save your Config, check iCloud, then restore items one by one on the new device. Verify the result by checking file contents, subscription updates, and actual connection behavior—not just whether the app is installed.
Identify the four types of data to transfer
Home, Config, and Settings in Shadowrocket store different kinds of information. Seeing a server or subscription group in Home does not mean the rules file has been restored; seeing a file with the same name in Config does not mean Global Routing is using it. Before migrating, record what is working on the old device so you do not have to reconstruct it from memory.
This guide assumes you already have your own service provider and subscription. Get subscription details from your provider; the app purchase and connection service are managed separately. Subscription URLs may contain access credentials. Store them securely like passwords, and do not put them in public notes, shared albums, or public feedback.
Connections and configuration
- Home
- Note your subscription names, groups, and currently selected server.
- Subscription source
- Keep the original subscription URL; a screenshot of the list is not a substitute.
- Config
- Note the name of the currently enabled file and export its contents.
- External references
- Check the rule resources referenced by the configuration and the conditions required to access them.
Server lists and rules files are different types of data; check each separately.
Operation and authorization
- Global Routing
- Note whether the current mode is Config, Proxy, Direct, or Scene.
- On Demand
- Go to Settings → On Demand and record the existing trigger conditions.
- VPN permission
- When connecting for the first time on the new device, follow the system prompt to confirm.
- Custom settings
- Record any items you changed manually, such as DNS.
Verify file restoration, operating mode, and system authorization separately.
Keep the old device until the new one passes the full check. For now, avoid editing the same configuration file on both devices at once. If a sync carries an incorrect change to the other device, an independently exported file gives you a clear restore point.
What iCloud sync covers and how to check it
iCloud sync and saving an exported file to iCloud Drive are not the same thing. Sync depends on the features the app provides and the options actually enabled; saving to iCloud Drive keeps a file you can import manually. Signing in to the same Apple Account on both devices does not mean Home, Config, Settings, and system VPN authorization are all in sync.
First, go to Settings → Apple Account → iCloud and check iCloud Drive and the app's iCloud access. System labels may vary by OS version. Then open Settings in Shadowrocket and check the iCloud-related options shown there. Use the items listed in the app and the data that actually appears on the new device to determine what synced. Do not assume a full-device restore also syncs every item in the app.
Divide the migration tasks: sync to carry data across, export to provide a fallback
Old iPhone
- Check the iCloud account, available storage, and network connection.
- Note which sync options are actually enabled in the app.
- Export the Config currently in use and save a separate copy that you will not edit.
- Keep the information needed to restore subscription sources and manually added items in Home.
New iPhone or iPad
- Check that the iCloud account used for sync is the same.
- After syncing, check Home and Config separately.
- Open each file and verify key rules, not just the filename.
- Restore missing items manually and confirm connection authorization again.
Sync is successful when the data and behavior match—not merely when the iCloud switch is on.
Sync is not a separate, versioned backup: deletions and overwrites may sync too. If two files with the same name have different contents, export both before comparing them. Do not immediately overwrite the older file with an empty one. After restoring a system backup, run the same checks—especially which Config is enabled and what Global Routing is set to.
Export a Config file from the old device
Open Config and find the configuration file that is actually enabled. Export that file, not a backup with a similar name. File actions may be in the file's action menu or available by swiping. Open the actions and choose Share, then save the file using the system share sheet. A screenshot of text in the configuration editor is not a restorable file.
-
Identify the source file
Open Config and note the currently selected filename. Open the file and check whether
[Rule], custom rules, and the trailingFINALmatch the old device's setup. -
Export a copy
In the file actions, choose Share, then select “Save to Files” in the system share sheet. If you save to iCloud Drive, wait for the upload to finish before leaving the old device.
-
Check the file
In Files, make sure the exported item opens, is not empty, and retains the
.confextension. You could name itbefore-move.confto distinguish it from any file you edit later. -
Keep the source details
Save the original subscription URL and any necessary manual server settings separately. Exporting a Config does not prove that all connection details in Home have been backed up.
-
Keep a fallback
Keep the exported copy as an untouched restore baseline. If you need to make changes later, work on another copy and leave the old device in its current working state for now.
If the file references remote rule resources, saving the main configuration does not also save the remote content locally. When restoring, make sure those references are still accessible; any required authentication must also be valid. Do not delete rules or change the fallback policy at random to fix a failed reference.
Restore on a new iPhone or iPad
Shadowrocket is a closed-source commercial app for Apple platforms, primarily used on iPhone and iPad. It is available exclusively through the App Store. Install it on your new device from the App Store and verify the developer, Shadow Launch Technology Limited, and app ID 932747118. Check the App Store listing for system requirements and purchase eligibility.
Your App Store purchase history and iCloud data sync are separate. If you have already purchased the app, first check your purchased items using the account associated with the store. Restoring the app does not verify your subscription's validity period or replace system authorization on the new device.
- Check for existing data first. Open Home and Config to see what came across through sync or a system restore. Do not import subscriptions that are already present and working, as this may create groups with duplicate names.
- Import any missing configuration. In Files, find the exported
.conffile and use the share sheet to open it in Shadowrocket. Follow the import prompts, then return to Config and confirm that the file appears. - Enable the file you need. In Config, select the restored file and check its key contents. Importing a file does not mean its rules are active; it may not be enabled yet.
- Restore Home items. If a subscription is missing, tap “+” in the top-right corner of Home to open Add Server. Set Type to Subscribe, enter the subscription URL from your provider, and save it. Then update the subscription.
- Complete the first connection. Select a server you have confirmed is working, then turn on the connection. When the system asks to add a VPN configuration, verify the app name and confirm. Return to Home to check the status.
Manually added servers need to be checked individually for Type, address, port, authentication details, and relevant transport settings. Restoring a note or server name alone is not enough. Keep the port from the original details: even if one item used 443, do not change the ports of other entries to 443. The same protocol does not mean the connection settings are identical.
Check Global Routing after the restore
If you can connect after migrating but traffic is routed differently, check Home → Global Routing first, then Config. The connection switch shows the tunnel state; it does not guarantee that a destination is handled by the same rules as before. Use the comparison below to choose a mode for restore testing, and do not leave temporary troubleshooting settings in place as your final configuration.
Config
RecommendedUse the currently enabled configuration to determine how connections are handled. Rules are evaluated from top to bottom, and the first match determines the action; unmatched traffic falls through to FINAL. This is the right choice for checking a migration if you previously used rule-based routing.
Best for: checking restored rules, policies, and everyday behavior
Proxy
Handle connections in proxy mode rather than routing each one according to the existing rules. You can use this temporarily to distinguish connection-setting issues from rule issues, but restore the original Global Routing setting after testing.
Best for: temporarily checking whether the selected server can connect
Direct
Handle connections in direct mode. If the old device used Config but the new device is set to Direct, the configuration file may be intact, but it will not produce the same proxy routing behavior.
Best for: checking whether the current network can reach a destination directly
If the old device used Scene, check the scene and its conditions too. Switching to Scene does not automatically restore the previous scene. During setup, keep variables controlled: first confirm the selected server and configuration work, then restore scenes and automatic connection conditions one at a time.
Check key rules to verify the files match
This is an example of how to read a configuration, not a replacement for your existing one. example.com is a sample domain. When comparing the old and new devices, check rule order, policy names, and the final fallback—not just the filenames.
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY
DOMAIN-SUFFIXmatches domain suffixes. Specific rules that were previously higher in the list should not be moved below the fallback rule during restoration.- The
IP-CIDRexample covers the private address range192.168.0.0/16. If local network access is not working, also check the new device's actual subnet and system permissions. GEOIPmatches against location data for the destination IP. A page's displayed language alone does not determine whether the rule matches.FINALis the fallback and should come after rules that need to be evaluated first. Having a file does not mean every rule in it is actually matched.
On Demand and connection checks
After manual connections work, go to Settings → On Demand and restore the original conditions. On Demand triggers connection behavior based on conditions; it does not restore missing servers, subscriptions, or rules. Wi-Fi networks may differ on the new device, so recheck the old network conditions instead of copying them and assuming they work.
- Test a manual connection first. Select the target server in Home, confirm the connection status, and visit a destination you know and can use for testing.
- Then test routing. Check one destination expected to use DIRECT and one expected to use PROXY. Use available connection logs to verify the policy; do not rely on opening a webpage once as your only test.
- Then test network changes. Check how On Demand behaves on both Wi-Fi and cellular networks. Keep in mind that cellular testing uses mobile data.
- Test subscription updates last. Confirm the update succeeds, then check that the selected item is still valid. Your provider may change names or remove older entries when updating the list.
Change one thing at a time during verification. If you re-import a subscription, switch Global Routing, replace the Config, and change DNS all at once, even a successful restore will not tell you which step fixed the problem. Comparing the old and new devices on the same network makes it easier to separate missing migration data from differences in network conditions.
Common migration questions
Why is my subscription missing even though I signed in to the same account?
Check the system iCloud account, the app's sync options, and the Home list separately. A matching store account does not mean your data has synced. If the subscription is still missing from Home, restore it using the original URL via Add Server → Type → Subscribe, then update it.
Why are my connection results unchanged after importing Config?
Return to Config and confirm the imported file is enabled. Then go to Home → Global Routing and check that it is set to Config. Next, check whether an earlier rule is matching first; do not check FINAL alone.
I exported my configuration, but Home is empty. Do I need to buy the app again?
Missing connection details in Home are separate from your purchase history. First restore the subscription from your provider, or add the manual servers from your old device's notes. Do not treat a Config file as a complete backup of all connection details.
My new device asks to add a VPN configuration. Did the restore fail?
Importing a file does not mean the new device has completed system authorization. Confirm the prompt is from Shadowrocket and follow the system steps, then return to Home to test. If manual connections work but automatic connections do not behave as expected, check Settings → On Demand.
What should I do if the two devices have configuration files with the same name but different contents?
Stop editing them at the same time. Export both files separately and compare key rules, external references, and FINAL. Choose a verified working file as the restore baseline and test it on the new device before handling duplicates. Do not delete the only working copy on the old device.
Once the new device passes these checks—subscriptions update, Config is enabled, Global Routing is correct, and manual connections and On Demand both work—you can organize the old device. Keeping a separate configuration copy and the notes needed to restore it makes your next device switch easier than relying on ongoing sync alone.