At a glance

Before switching devices, save your connection details from Home, rule configs from Config, and any Settings you need to review. iCloud is useful for syncing across your devices; manual export gives you a separate copy. Verify the actual contents on the new device either way. This guide is for users with their own provider configuration who are moving to a new iPhone or reinstalling Shadowrocket.

First, know what you’re restoring: purchase, connection details, or rules

Re-downloading Shadowrocket solves access to the app; it does not restore everything from your old device. Your App Store purchase record, app data in iCloud, and connection details from your provider are separate. A restored purchase does not mean your connections and rules have also been restored.

Before migrating, open Home on the old device and note the connections and subscription groups in use. Then open Config and record the active config file name. Finally, check Settings for behavior options you want to keep. Don’t rely on a Home screenshot alone: it can help you verify names, but it cannot replace passwords, keys, or complete rule files.

Data typeWhat to save before switchingWhat to check after restoring
App Store purchaseConfirm which Apple Account was used for the purchaseCheck whether you can re-download the app; don’t treat the purchase record as a config backup
Home connection detailsYour existing subscription URL and full details for manually added connectionsCheck that the address, port, protocol, authentication, and transport settings are complete
Config rulesThe active file and any custom changesCheck that the file is imported and enabled, and that the rule order is correct
SettingsA record of the settings you want to keepCheck that On Demand and other behavior match how you use the new device

A config file does not necessarily include every connection in Home or all app settings. Check the actual export and the scope described by the export screen; the file extension alone doesn’t tell you what’s included.

iCloud sync: verify the account, then confirm the data arrived

iCloud sync depends on the Apple Account used on the device, iCloud Drive status, and the app’s access permissions. The Apple Account for iCloud may differ from the one used for App Store purchases: the former affects cloud data, while the latter affects purchase records. Check both when switching devices.

  1. On the old iPhone, open Settings, tap your Apple Account at the top, then tap iCloud. Confirm that iCloud Drive is on and check the available storage.
  2. Find Shadowrocket in the list of apps using iCloud. If there’s a separate switch for the app, make sure iCloud access is allowed. The list may be located or labeled differently across system versions.
  3. Return to Settings in Shadowrocket and check the available options related to iCloud sync or backup, including their descriptions and data scope. If you don’t see a relevant option, don’t assume the app has automatically uploaded everything.
  4. Keep the old device online and complete the relevant in-app steps. On the new device, use the same iCloud account and enable the same permissions, then open the app and check the actual contents of Home and Config.
  5. If the data is still missing, leave the old device as it is. Check the account, cloud storage, and network first, then restore from your saved manual copy. Don’t immediately delete or clear configs on either device.

Sync usually propagates changes, so don’t treat it as a permanent archive of an earlier state. If the old device has important custom rules, export a separate file before making changes on the new device. That gives you a clear rollback copy if the contents on either device change.

Manual export: save Config and connection details separately

A useful manual backup should be readable, identifiable, and complete. Save the active config first, then handle existing subscription URLs and manually added connections. Share and more menu labels can change, so use the export options currently available on screen. Don’t mistake one file for a full app backup.

  1. Open Config and confirm which config is enabled. Open that file’s action menu and use the available share or export option to save a copy in a folder you manage in Files.
  2. Give the file a recognizable name, such as home-rules-before-migration.conf. Open it and check that your custom rules are present; don’t stop at confirming that the file was created.
  3. Return to Home and save your existing subscription URLs. For manually added connections, use the sharing or export options available in the app. If you can only inspect them one by one, record all connection details, especially ports, authentication fields, and transport options.
  4. If your config references remote rules or other external files, also note where those dependencies come from. A config file with remote references does not mean the remote content has been saved locally.
  5. Keep important copies somewhere protected, including a backup that doesn’t depend on immediate syncing. Don’t erase the old device until you’ve verified the restore.

The example below is only for checking rule text; it is not a complete file you can use to replace your existing config. Policy names must match those defined in your actual config. Don’t rename existing policies just to make them look consistent.

[Rule]
DOMAIN-SUFFIX,example.com,DIRECT
IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
FINAL,PROXY

Check both the rule content and its order. The example matches domains and local network ranges first, then uses FINAL for other connections. If only FINAL remains after restoring, a working connection does not prove that your original routing rules were restored.

Restore on a new iPhone: app first, then data, then connections

Restore access to the app before importing data. Open the App Store, sign in with the Apple Account used to purchase Shadowrocket, find it in your account’s purchase history, and download it again. If the product page still shows a price, check the account and purchase record first; paying again is not a config recovery step.

Check purchase Install app Restore connections Import rules Verify
  1. After installation, open the app and check whether iCloud has restored any data. If Home and Config already contain data, verify it before importing anything to avoid duplicate connections.
  2. For connections that haven’t been restored, import your own connection backup or existing subscription URL. Before updating a subscription, confirm the URL is complete and preserve its query parameters; a name from an old list is not a substitute for the full URL.
  3. In Files, find your exported config file and share it with Shadowrocket using the system share sheet or the app’s file import option. Then open Config and confirm the file appears; select the config you want to enable.
  4. Return to Home, select a connection, and check Global Routing. To test rule-based routing, choose Config. Proxy and Direct behave differently, so neither can substitute for checking rules under Config.
  5. When you connect for the first time, follow the system prompt to allow adding a VPN configuration. Then go to Settings → On Demand and review automatic connection behavior for your needs. Don’t rely on automatic activation before you’ve verified the connection.

The list after restoring a subscription may differ from the old device because the provider’s current response may have changed. Use your existing service’s current configuration as the reference, distinguish historical entries in an old copy from entries returned by the current subscription, and don’t judge success by the total number of connections alone.

After restoring: check three areas and verify both backup methods

3 areas
Check Home, Config, and Settings one by one
2 methods
Verify iCloud sync and the manual file copy separately
1 rule
Check the final handling policy in FINAL

First confirm that a connection can be established, then check whether rules handle requests as expected. A successful connection only shows that the current connection is usable; it doesn’t mean DNS, rule references, or automatic connection behavior match the old device. During testing, change one setting at a time and note what happens. Avoid changing protocol parameters and rules simultaneously, so you can identify the cause of any issue.

In short: verify the new device before clearing the old one

Consider the migration complete when your connection details are complete, the intended Config is enabled, and the rules behave as expected. Once all three are confirmed, archive your backups and clear the old device. Don’t rely on the app being installed or a connection icon appearing as proof that the migration is complete.

Common transfer questions: restore what’s missing

Why is Home still empty after I re-downloaded the app?

Re-downloading the app doesn’t recreate connection details from your purchase record. First check the iCloud account and app permissions on both devices, then confirm whether the old device actually had the relevant data saved. For anything outside the sync scope or not restored, import your own saved subscription URL or connection backup.

Why didn’t my connections come back with the imported conf file?

Check the file contents and export scope first. A config may include only rules, DNS, and other settings, not every connection in Home. Keep the imported rules file and restore connection details separately. Repeatedly overwriting Config won’t restore data that was never in the file.

The new device connects, but my original routing rules don’t seem to work. Why?

Go to Home → Global Routing and confirm Config is selected, then open Config and make sure the correct file is enabled. Check that custom rules still appear before FINAL and that their referenced policies exist. If Proxy or Direct is selected, switch back to Config before testing the rules.

Can I recover manually added connections if I no longer have the old device?

Check your iCloud data, exported files in Files, and any original details you saved. If you only have a rules file and no connection parameters, you can’t recover passwords or private keys from rule names. Get a current config from your existing service account. Before restoring, save the data currently on the new device so you don’t overwrite anything useful.