Back up before an upgrade or reinstall
Save inside the game before exiting. A save-management tool cannot commit progress that the game has not written. Export a recoverable backup before upgrading, deleting the app, cleaning the library or restoring another save.
The S2Arm README specifically notes that release builds use io.s2arm.* identifiers, which the system treats as different apps from beta builds. Beta saves do not migrate automatically. Do not delete the old app before working out the transfer.
Export and retain a backup file
Mac builds that support save management expose Save backup and restore in game details. The mobile main-branch documentation describes a pre-launch manager that exports .s2asave files. Use the controls actually available in your installed build.
Store the backup in an accessible location outside the game library, retaining the title, version and date. Confirm that the file exists before proceeding. Avoid keeping the only copy inside the current app container.
Inspect game and version identity before restoring
The project’s backup format records game, base and update versions, DLC and account identity. Select and inspect the backup, review the preview, then confirm restoration. Backups from another game or incompatible versions are not interchangeable.
Restoring does not merge progress or provide cloud sync. The main-branch documentation describes retaining the old directory and a pre-restore backup. If restoration fails, preserve that state rather than repeatedly deleting the app.
Transfer between Mac and mobile devices
Export a .s2asave file on the source device, then transfer it through a location available in Files. Inspect and restore it on the destination, then start the game to verify progress. Both sides should use the same game, version and DLC combination.
Older packages may lack trusted game identity and request a rebuild from a newer launcher. Retain the original app and backups before following that upgrade path. If a release package lacks the manager described in main-branch docs, do not assume the feature has shipped in that package.