Beta test my new iOS app for Syncthing

The app is currently targeting 17.5 as minimum. I assume you are jailbreaking and need an older iOS 17. If so I will check if I can lower the deployment target. Note however I cannot guarantee support forever for any iOS version that is 1/2 major versions behind.

Hi Tommy, thank you for the great app! Seems to work fine, though it required a restart as it was somehow crashing after the initial setup while syncing. I enabled debug logging but it has been stable since then.

An iOS noob question: when I try to backup the photos, the only folder that makes sense is “Recents”. I don’t have an option called “Camera roll” or similar. Have the same problem in the stock Photos app. When syncing with CopyTrans I see a “folder” called “All images” but perhaps that one is created virtually by the software. So, I did a quick test with “Recents” and see basically folders with each date. Is this intended behavior? Is there any way to see/sync only the camera roll, including videos but excluding stuff received on WhatsApp for example?

Question 2: I have no problem enabling the “Delete photos after syncing” once they get moved to the sync folder. My woder is, if everything else would work fine and the stock Photos app would just see them as usual, with the same date and metadata.

Just adding a new post since there might be some useful information.

I used a shortcut (iOS native) to move all the photos taken with my phone to a new album. There is also another shortcut + automation that moves new pictures to that album. In Synctrain I set up a folder which is synchronized with that album. It is set up to remove files immediately but that might not be a great thing, see below.

When the photos are synced with the iOS folder, they are transferred in the usual ugly way, one folder per day. This is how iOS behaves I guess.

When the files are removed (deleted) from that album, they also disappear from the Photos app. Not sure if there is a simple way to move them back. In Photos you also cannot set a way to display a device folder as an album (like on Android). The photo albums/folders and the device folders are completely separate and Files for example cannot access any native photo album (afaik).

So the only workaround seems to be to keep both copies of the photos/videos on the device, one in the Photos storage and one in the Files storage.

Thanks! And strange that a restart was required, but not much to go on… (Note that the latest version should fix an issue with the app freezing after doing things in the background. Perhaps this occurred with the previous version)

I will look into this. I am simply using ‘Recents’ but that indeed includes everything, but having ‘Camera Roll’ as an option makes sense and should be possible.

The app basically gets a long list of all photos in the selected album from the system. Then it sorts them by date. In the future this behaviour may become configurable (i.e. have an option to just place everything in a single folder, put things in a sub folder, etc.)

I’m not sure I understand your question. Pictures that are removed from the Photos albums will not be visible there anymore (and that is what this feature does). The stock Photos app will not see anything in the Synctrain folder.

1 Like

Thank you for the quick reply.

No, the latest version of the app simply exited after a few seconds after the phone was put on the wireless charger with the screen on. It went back to home screen, very strange. This did not happen anymore after I enabled debugging and force-restarted the app.

Not sure this is possible, Camera Roll was removed some time ago. Instagram and WhatsApp have a way of accessing it somehow, but not sure how.

Really cool, though not sure how many are bothered by this.

Good to know. Unfortunately the synced+removed photos just disappear from the gallery and it’s hard without a 3rd party app to see the “old” photos. I might leave that option off for now until iOS is updated to support Albums from existing device folders.

What’s the best way to get you that information privately?

not jailbreaking, but Trollstore, which allows more flexibility for sideloading as opposed to official allowed free cost methods (maximum 3 apps per developer account, maximum 7 days lifetime of signing an app).

I’d be happy without any support as long there’s a tiny chance of doing a sync between iOS client and other clients. I do understand supporting older operating systems is a hard task when you need new features only offered by newer versions, but maybe you find a way to a compromise :slight_smile:

@pixelspark App looks awesome! I have one suggestion: limit synchronization to Wi-Fi only. Many people have mobile data limits including myself, so I think this would be a very useful feature.

I know this can be toggled in Cellular settings, however it will only show up there after use. I think it would be much nicer to have a toggle in the app, and perhaps even separate speed limits for Wi-Fi and mobile data sort of like how YouTube does with video quality:

@pixelspark Cannot find the app from the US or Chinese App Store. Is it only released in the Dutch App Store?

Good idea!

Unfortunately it appears it is not easy to implement properly. The good news is that there are APIs in iOS to detect the current connection type (i.e. NWPathMonitor). When the only connection type available is cellular, the app could thus temporarily suspend synchronization and/or lower bandwidth limits. When both Wi-Fi and cellular are available however, issues arise. The app cannot force Wi-Fi only usage in this case, and iOS may actually use both (when ‘Wi-Fi Assist’ is enabled and your Wi-Fi is slow).

Apple does have higher-level APIs that have the capability to prohibit use of ‘expensive’ networks (cellular but also e.g. personal hotspot Wi-Fi). These (NSURLSession et al) are unfortunately not used by the Syncthing core code. As far as I know there is also no way to tell Syncthing (from config at least) to only ever use specific interfaces (these could be obtaind from NWPath) but maybe the core developers can chime in.

The toggle in system settings actually does what you want (additionally there are system-wide settings to limit data usage for background tasks). It is unfortunate that it only appears after using cellular data once, but triggering that is not difficult of course. I will check to see if I can influence this setting from the app but I’m afraid it will not be possible.

1 Like

This is more or less impossible from a single application perspective. We can of course control which interfaces we listen on and which addresses we publish to discovery, but outgoing traffic follows the system routing policy and isn’t really under our control.

1 Like

Gotcha, thanks for the info. Using the iOS system settings toggle works fine anyways, so it’s not a necessary feature by any means.

On another note, I noticed there is no option to use a custom global discovery server. I would love to see this as an option since I want to use my own discovery server.

Perhaps an option to “Modify Configuration File” could be added for manual config modification? Of course a warning should be displayed due to the sensitive nature of an option like that.

thank you for making the testflight available to 17.0 !

1 Like

Scroll down in advanced settings, you can export the config file there. Save it as config.xml in the Synctrain folder and restart the app - it should pick up your config file (although some specific settings are always overwritten/managed by the app, notably folder paths, the global discovery setting isn’t)

In a future version I might add a field for setting the global discovery server.

1 Like

Oh perfect, thank you!