Before switching to a new iPhone or iPad, handle your purchase history, connection details in Home, Config files, and Settings separately. iCloud sync is not a substitute for a standalone backup, and exporting a single Config file does not back up the entire app. This guide assumes you already have your own provider and subscription. Follow the steps in order: keep the data on your old device, restore it on the new one, then verify each item. Keep the original data on your old device until the new one is confirmed to work.
1. Separate your purchase history, connection details, and Config files
Restoring Shadowrocket after changing devices involves two separate tasks: redownloading the purchased app from the App Store and restoring your own configuration. The client is a one-time-purchase, closed-source commercial app. Buying the client is separate from obtaining connection services; restoring your purchase does not create a subscription or restore access to a provider account.
Home, Config, and Settings each serve a different purpose in the app. Seeing connection entries in Home does not mean the rules file you used before has been restored. Seeing a file in Config does not mean the corresponding connection settings are present in Home. Check each item during migration rather than relying on the connection toggle alone.
| Item to migrate | What to keep | Where to check on the new device |
|---|---|---|
| App purchase history | Original purchase account and purchase record | App purchase history in the App Store |
| Connection details | Your existing subscription URL or all parameters for manually added entries | Entries and subscription groups in Home |
| Rules configuration | The Config file currently in use and its external dependencies | File contents and selection status in Config |
| Runtime settings | Current values for Global Routing, On Demand, and other settings | Corresponding items in Home and Settings |
2. Check what iCloud syncs
iCloud is a way to sync app data, not a replacement for your App Store purchase history. The iCloud account on your device may differ from the account used for App Store purchases: the former affects cloud data, while the latter determines whether you can redownload purchased apps. Checking only one account does not confirm that both can be restored.
On your iPhone or iPad, go to Settings → Apple Account → iCloud and check the permissions for iCloud Drive and Shadowrocket. The names and locations of these options may vary by system interface. Then check the iCloud-related options in Shadowrocket Settings and enable the sync features available there. Do not treat a full-device iCloud backup, files in iCloud Drive, and in-app sync as the same feature.
What iCloud sync and file export each do
iCloud sync
- Requires an iCloud account, permissions, and a network connection on both devices.
- The data types covered depend on the options in Settings and the actual sync results.
- Changes may continue to sync across devices, so this should not be your only historical copy.
Exporting a Config file
- Saves the selected file as it exists at export time, making it easier to keep and compare separately.
- Does not automatically include every subscription, connection entry, or setting in Home and Settings.
- Check any remote resources referenced by the file separately on the new device.
Use both approaches: verify the sync, then keep a separate export. Enabling iCloud does not mean the migration is complete.
Confirm sync coverage on the new device: check whether the original groups appear in Home, the target file appears in Config, its rules are intact, and Settings values match. Syncing one item does not mean the others have synced. You will also need to confirm system VPN permission the first time you connect on the new device.
3. Export Config from the old device and keep its dependencies
Before exporting, open Config and check which file is currently selected. Open it and review its rules, DNS, and other contents. Do not rely on the filename alone: the list may contain an old file, a remote file, and a locally modified copy. Give the copy you keep a descriptive name, such as iphone-before-migration.conf, and note the export date in your own records.
-
Identify the current file
Open Config, note the selected file's name, and review its contents. If you use a remote configuration, keep its original source information and distinguish the remote original from local changes.
-
Export a separate copy
In Config, open the action menu for the target file and choose the file-sharing or export option. Menu names and locations may vary by interface. In the system share sheet, choose “Save to Files” and save it somewhere you can access.
-
Check the file contents
Find the saved file in the system Files app. Confirm it is not empty and check the configuration at the beginning and rules at the end. Saving only the filename, a screenshot, or the source URL is not a substitute for the configuration itself.
-
Keep your connection details
Store your existing subscription URL securely in a separate location. For manual entries, record the Type, address, port, authentication details, and, where applicable, TLS, SNI, and transport parameters.
-
Record runtime settings
Note the current value under Home → Global Routing and the existing status under Settings → On Demand. Keep a record of any other settings you changed so you can compare them one by one during restoration.
If your rules depend on remote rule sets or other external resources, exporting Config usually preserves references to them; it does not package those resources as offline copies. After switching devices, check that the resources are still accessible and your account permissions remain valid. Do not replace them with configurations from unknown sources just to get things working again.
4. Restore on your new iPhone or iPad in order
Restore the app first, then your data, and enable connections last. Shadowrocket is available only on Apple platforms, and the App Store is the only place to get it. The developer is Shadow Launch Technology Limited. Check the App Store listing for system requirements and purchase availability. Sign in with the original purchase account, find Shadowrocket in your App Store purchase history, and redownload it. The name of the relevant option may vary by system interface.
-
Verify your purchase history
Check the App Store account, developer, and app ID. If the page still shows a purchase price, first check the current account and your purchase history. This does not mean your configuration has been lost.
-
Check your cloud data
Verify system iCloud permissions and the relevant in-app settings. Once network transfers are complete, check Home and Config separately. Avoid repeatedly editing the same configuration on both devices while syncing is in progress.
-
Restore missing data
If a subscription is missing, go to Home, tap “+” in the upper-right corner, then choose Type → Subscribe. Enter your existing subscription URL, save it, and refresh. Restore manual connection entries from your original details, one field at a time.
-
Import a configuration file
Find the exported Config file in the system Files app and use the share sheet to open it in Shadowrocket. You can also use the local file import option available in Config. After importing, return to Config, open the file to check its contents, and select it explicitly.
-
Authorize and test
The first time you enable a connection, follow the system prompt to allow adding a VPN configuration. Test the connection manually first, then restore your previous automatic connection conditions under Settings → On Demand.
If Shadowrocket does not appear in the share sheet, first make sure the file in Files contains readable configuration text, not a web shortcut or a cloud item that has not finished downloading. Return to Config and check for a local import option. If the import fails, keep the original file and do not repeatedly overwrite files with the same name; you could lose your last usable copy.
5. Check rules, subscriptions, and On Demand after restoring
“The file was imported” and “the app behaves as before” are two separate checks. If Home → Global Routing is set to Direct, requests will not use a proxy as expected. If it is set to Proxy, that alone does not verify your original rules. To check how the rules in Config work, select the target file first and set Global Routing to Config. Check Scene separately against the settings you used before.
- Refresh subscriptions: Confirm the expected groups and entries appear after refreshing. A group name without usable entries does not mean restoration is complete. If the refresh fails, first distinguish between a network error, an invalid URL, and an access issue.
- Manual settings: Check that the protocol Type, address, and port match your original details. Authentication and TLS settings for VMess, VLESS, Trojan, and other entries are not interchangeable.
- Rules: Check that your original entries, such as
DOMAIN-SUFFIX,GEOIP, andIP-CIDR, are still present, and that rule order and referenced policies are still valid. - Final policy: Check
FINALat the end of the file; it handles requests that did not match any preceding rules. Make sure you do not unintentionally change this default destination during restoration. - Automatic connections: Go to Settings → On Demand and check your previous conditions. Test the manual toggle first to avoid automatic reconnections interfering with troubleshooting.
The example below shows how to check two rules; it is not a complete configuration and should not replace your existing file. example.com is a documentation example domain. The policy assigned to PROXY must be valid in your actual configuration. Compare against your original file rather than copying the example.
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT
For testing, keep both devices on the same network and access the same destinations that you are authorized to use. Then check the matched rules and actual policies in the app's request log. Comparing exit IP addresses alone does not prove that every rule has been restored correctly. Check rule matching, DNS resolution, and connection success separately.
6. Common questions about restoring on a new device
Why does it still show a price when I use the same account?
First check the account currently used for App Store purchases, not just the system iCloud account. Search for Shadowrocket in your purchase history and verify that the app ID is 932747118. If the original purchase is not listed, check the account and receipt used at the time before deciding what to do next.
Why is Home still empty when iCloud is on?
Check the iCloud account and system permissions on both devices, as well as the sync options in Settings. Then check Home and Config separately. If connection details are still missing, restore them using your own subscription or manual settings that you saved securely. The appearance of one file does not prove that all data has synced.
Why does the connection behave differently after importing Config?
Return to Config and confirm that the imported file is selected, then check Home → Global Routing. Select Config to run the rules, and check policy references, remote resources, and DNS settings. If the connection entries themselves are missing, restore the data in Home first.
Why does a subscription refresh fail on the new device when it still works on the old one?
First check that the subscription URL saved on the new device is complete, especially its query parameters and access credentials. Then make sure both devices have the same network conditions. Entries already on the old device may simply be cached; that does not mean the subscription URL is still valid. If needed, check your account status with your existing provider.
Can I erase the old device as soon as the migration is complete?
Verify the Home entries, Config file, Global Routing, and On Demand. Confirm that the new device still works as expected after a restart, and keep a separate readable copy of the configuration. Do not delete the last usable copy of your data from the old device until these checks are complete.
7. Keep a recoverable copy of your migration
A migration is not complete just because the app opens on the new device. The data you need should be intact, the runtime behavior should be clear, and the backup should still be readable. Keep the export from the old device separate from the copy verified on the new one, so later syncing or subscription updates do not blur the two. Subscription contents can change as their source updates, while a standalone Config copy records the file as it was at export time.
- Keep a pre-migration Config file and a separate post-migration file that you have verified.
- Store your own connection details securely. Do not put account passwords and a complete configuration in a publicly shared location.
- Record the Global Routing mode and On Demand status you actually use so you can restore them next time.
- Only erase or hand off the old device after confirming that the new one works independently.