When transferring Shadowrocket, handle the app purchase, Config files, Home server details, and Settings separately. This guide is for users who already have their own service and subscription and are preparing to switch devices or reinstall. Export a readable backup from the old device, transfer it with iCloud Drive, then restore your data on the new device, check your rules, and test the connection. Reinstalling the app does not mean all connection settings have been restored.
1. Separate your purchase from your connection data
Shadowrocket is a one-time purchase for Apple platforms; buying the app does not include a service plan. Your App Store purchase record lets you download the app again, but it does not restore your provider account, subscription URL, or server credentials. Restoring the app and restoring its configuration are separate processes. First make sure you can still access the data on your old device, then set up the new one.
In the app, Home, Config, and Settings cover your server list, configuration files, and app settings. Exporting a single .conf file does not guarantee that it includes every server in Home, subscription groups, or Settings options. Open the exported file and check which fields it actually contains.
- Purchase record: Make sure the App Store is signed in with the Apple ID originally used to buy Shadowrocket.
- Server details: Check which Home entries come from an existing subscription and which were added manually.
- Rule files: Note the file currently selected in Config and any rules you edited yourself.
- Runtime settings: Record Global Routing, Settings → On Demand, and any DNS options you changed.
2. Back up the old device: export Config and save server details separately
On the old device, open Config and confirm which configuration file is active. Open the available actions for that file and use the export or share option to save it; button labels may vary by app version. When the system share sheet appears, choose “Save to Files,” keep the .conf extension, and use a name that identifies the device and purpose, such as iphone-before-move.conf.
- Note the name of the active Config file first so you don’t export a different, inactive file from the list.
- Save the export in a folder you manage. To transfer it between devices, choose iCloud Drive rather than saving it only to “On My iPhone.”
- Preview the file or open it in a text viewer to make sure it isn’t blank and that your custom rules are present, especially the final
FINALrule. - Return to Home and check that you can still retrieve your existing subscription URL from your own secure records. For manually added entries, record each protocol and connection parameter.
- Keep another controlled backup, and retain the original data on the old device until the new one has passed verification.
Check these two types of data separately. A configuration file may contain server definitions, or it may primarily store rules. Check the exported file itself rather than relying on its name. Also, being able to refresh a subscription does not mean that local changes you made to individual entries on the old device will be restored.
Config backup
- Location
- Config → actions for the active configuration file
- File
iphone-before-move.conf- What to check
- Custom rules, DNS settings, policy references
- Backup location
- iCloud Drive and another controlled copy
Inspect the file before deciding what it can restore.
Home data backup
- Subscription entries
- Keep the full subscription URL you already have
- Manually added entries
- Record Address, Port, and authentication fields
- TLS settings
- Check SNI and other settings against the original entry
- Default selection
- Note the server or policy that was selected
Store credentials securely; don’t put them in public notes or shareable links.
3. Sync with iCloud: confirm the file is uploaded before importing it on the new device
Transferring an exported file with iCloud Drive is a migration method you can verify step by step. It syncs files saved to iCloud Drive. Signing both devices into the same iCloud account does not automatically restore the Home list or every Settings option. Check the App Store purchase account and the iCloud file account separately; they serve different purposes.
- On the old device, open Settings → Apple Account → iCloud → iCloud Drive and make sure Drive sync is enabled. Labels may vary with iOS interface changes.
- Open the Files app → Browse → iCloud Drive and confirm the exported
.conffile is in the cloud drive folder, not “On My iPhone.” - Keep the device connected to the internet and wait for the file to upload. On the new device, sign in to the iCloud account used to save the file and enable iCloud Drive.
- Find the same file in the Files app on the new device and open it. If it shows a cloud download icon, download it first.
- Return to Config in Shadowrocket and use the file import option. In the file picker, open iCloud Drive and select the copy you checked.
If the app has an iCloud option, check the sync scope listed there item by item; don’t treat it as a full-device restore. Seeing the file name in the cloud is only the first step. The configuration has reached the new device only when you can open the file, import it into Config, and see the original rules.
4. Restore on the new device: reinstall the app, then restore servers and rules
On the new iPhone, sign in to the App Store with the Apple ID used for the original purchase. Find Shadowrocket in your purchased apps and download it again. Purchase eligibility and system requirements are as listed on the App Store page. To verify the app, check the developer, Shadow Launch Technology Limited, and app ID 932747118; see the genuine app verification page for details.
- Check the app: Open the newly installed Shadowrocket and review the existing content in Home and Config. If device migration has already brought over some data, don’t immediately import the same servers again.
- Restore servers: For an existing subscription, re-import the URL you saved and refresh it. For manually added entries, use your old-device notes to restore the protocol, Address, Port, authentication fields, and related transport settings.
- Restore the configuration: Import the backup file in Config, check its contents, then set it as the active configuration. A file appearing in the list does not mean it is active.
- Select a server: Return to Home, select the server you want to test, and confirm it is marked as selected. If your rules refer to a specific policy group, make sure the group contains an available member.
- Set up the system configuration: The first time you turn on the connection, follow the iOS prompt to allow adding a VPN configuration and complete any required authentication.
Don’t fill in protocol parameters with assumed generic values. For example, if the old entry used Port 443, start by entering the value from your original records. Don’t replace it with 8443 just because another service uses that port. Password, UUID, and Private Key fields are not interchangeable. If one is missing, check your original service details.
5. Verify the restore: check routing, fallback rules, and on-demand connections
Keep variables to a minimum for the first post-migration test: connect manually, verify the server, check the rules, and only then enable automatic connection. Proxy, Direct, Config, and Scene in Global Routing are different routing modes. If you need traffic routed by imported rules, make sure Config is selected; don’t stop checking just because the connection toggle is on.
| Check | Where to check | Expected result |
|---|---|---|
| Current server | Home | The intended entry exists and is selected, with authentication details matching the old device. |
| Routing mode | Global Routing → Config | Test using the configuration rules; don’t use a Direct result as proof that the rules work. |
| Active configuration | Config | The selected file is the backup you just restored and checked. |
| Connectivity test | Connectivity Test | Record whether the test passed or failed. Even if it passes, check access to the actual destination. |
| On-demand connection | Settings → On Demand | After confirming a manual connection works, check the network conditions and automatic connection behavior. |
This minimal rule snippet is for checking the structure; it is not a complete backup. example.com is a sample domain. Don’t use these lines to overwrite the original file. During migration, check that the original rules are complete and in the right order, and that the policies they reference are available.
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
GEOIP,CN,DIRECT
FINAL,DIRECT
DOMAIN-SUFFIX matches domain suffixes; GEOIP matches based on the destination IP’s geographic location; FINAL handles requests that didn’t match earlier rules. Rules are evaluated in order. Changing the original FINAL,PROXY to FINAL,DIRECT changes the fallback behavior, so check policy values as well as the number of rules.
In short: restore automatic connections only after manual testing succeeds
On the new device, complete a manual connection and verify real-world access before restoring the conditions under Settings → On Demand. If something goes wrong, you can then distinguish a server or rule issue from an automatic trigger issue without changing several settings at once.
6. Common questions about restoring Shadowrocket on a new device
Why is Home empty even though the app appears in my purchased list?
Your purchase record restores your eligibility to download the app. First check whether your old-device backup includes server details. Then restore them using a subscription URL you already have, or re-enter each manually added item. Don’t repeatedly import the same rule file just to fill the list.
The file is in iCloud. Why can’t I find it in Config?
First open the file in Files → iCloud Drive and make sure it has downloaded to the new device. Then return to Config and use the file import option to select it. Check that the actual file extension is .conf and that the old device didn’t save the only copy to “On My iPhone.”
My rules are restored. Why does the new device behave differently?
First check which file is active in Config, then confirm that Global Routing is set to Config. Next, compare the current Home server, the policy groups referenced by your rules, and the FINAL value. Change and retest one thing at a time to avoid mistaking a routing difference for a damaged file.
Can I recover a manually entered password after resetting the old device?
Check whether your controlled backup or original service records contain the field. If the file only contains rules, you can’t derive a password or private key from them. Whether you can retrieve entries again from an existing subscription depends on whether its URL is still valid; check with your own source.
Can I send the backup file to someone for troubleshooting after the transfer?
First check whether it contains subscription tokens, server passwords, UUIDs, Private Keys, or certificate-related data. Share only the necessary redacted fields and error details for troubleshooting. If full credentials have been exposed, change them through your own service management interface; deleting chat history won’t invalidate old credentials.
7. Final checks before clearing the old device
Being able to open the app on the new device only confirms that installation is complete. A successful connection alone doesn’t prove that all custom rules were restored. Before clearing the old device, complete each check below and save a copy of the final configuration. For On Demand conditions based on Wi-Fi or cellular networks, verify each one under the network conditions you actually use.
- In Home on the new device, check the number of servers, subscription groups, and key manually added entries, and remove any duplicates.
- In Config, confirm the active file and check your custom domain rules and final fallback policy.
- Run Connectivity Test and open the destinations you actually need to use. Treat test results and real-world access as separate checks.
- Check that the expected configuration remains in use after restarting the app or switching networks. If On Demand is enabled, also test its automatic trigger conditions.
- Confirm the backup opens and is stored securely before handling the old device and temporary export copies.