[Feature] Full File System Access For The iOS App (Open Existing Vault)

Ok let me be more precise

No, you cannot pick an arbitrary location. This limitation is due to iOS sandboxing and the way Obsidian access files (a whole vault at time).

That’s what I understand - which basically means that Obsidian cannot be used in a restricted data environment, if to be used with iOS.

Understanding that this doesn’t address all the use cases described here, I’ll note for the benefit of others who might arrive at this thread searching, as I did, for a way to open existing iCloud vaults created on macOS using the iOS app: My workaround was to…

  1. …have the iOS Obsidian app create a vault in iCloud in order to make it create the container in the proper way; then
  2. move my existing vaults into that container;
  3. return to the macOS Obsidian app, >File >Open Vault…;
  4. select “Open folder as vault”; and
  5. choose my existing vault(s, one at a time).

(Happy to move this comment elsewhere if there’s someplace more appropriate.)

Cheers,
-sth

Use case or problem

Obsidian vaults cannot be stored in custom folder locations on iOS.

This decreases the storage flexibility of the vault contents. For example, it is not possible to store the vault in a folder being synchronized to a third party cloud provider.

Personally, I like to use a third party storage service and sync files with Cryptomator. Cryptomator creates a separate folder where data can be stored in. This is the main reason I cannot add any Obsidian vaults in there.

Proposed solution

Allow vaults to be created and opened from custom locations.

This will allow the vaults to be present in folders and paths that are not decided by the software itself.

Current workaround (optional)

The only options I can see are to give in and use iCloud/Obsidian Sync or have some Git solution.

I’d really prefer just to create a vault in any folder that the user specifies.

1 Like

Please search before posting:

Merging into existing request.

I’m not sure I understand this. Apps such as Textastic can open an external folder from the Files app and do read / write operations on the contents of said folder.

3 Likes

Hello,

I would like an explanation as well regarding it not being possible for the iOS application to access other directories.

I do not have any experience with iOS development, however, I had found the following in Apple’s documentation:

  • In iOS 12 and earlier, users can open and interact with files outside the app’s container.” [1]

  • iOS 13, users can select a directory from any of the available file providers using a UIDocumentPickerViewController.” [1]

Looks like there is an example on the webpage as well for the second option:

Based on this Apple documentation the technical feasibility of applications accessing third party folders and storage locations is there.

Are there any design decisions that impact Obsedian’s ability to implement one of the above options of accessing other folders on iOS filesystem?

[1] Apple Developer Documentation

Have you searched the forum? This has been explained, altho rarely in much detail. I think there was a recent more-detailed explanation in Discord; I’ll try to find that to copy over.

Hello,

I may have missed the detailed answer on the forum, and I was unaware the project had a Discord.

The answers I keep seeing are in the realm of “Apple locks down everything, nothing we can do”.

Yet the Apple documentation seems to contradict this (unless there are some caveats I am unaware of, which is probably the case).

I’ve set a reminder to look it up later. I had the same problem as you, and I still can’t help but think, “are you sure?”, but I suppose the devs know what they’re talking about.

The extended explanation was something like, they need to work with lots of files at once and that’s not practical with the folder API, or maybe the parts of the folder API that can do that are difficult to implement.

Again, Obsidian needs direct filesystem-level access to the Vault, not access mediated through iOS’s sandboxing API.

The only direct filesystem level access locations on iOS are Obsidian’s Private folder and Obsidian’s iCloud folder.

5 Likes

How about techs like webdev, ftp, onedrive API access etc?
For example, for watching videos (especially for large files), we should support steaming playing (with cache techs) for better experiences, rather than provide “sync” feature to do the “copy/paste whole files” task then finally to play.
For private purpose, I don’t want to use any online service (even just cloud storage) to do the sync tasks for my notes, so that Obsidian account sync feature is not an good option for me.

Why cant obsidian iOS app access file folders like in the android app? This would be helpful to use the Reslio sync to synchronize my obsidian desktop with other devices.

It’s explained in the second post above yours.

I use 1Writer on iOS which lets you import any folder from the Files app and any operation (creation/deletion/modification) performed in 1Writer is saved properly in those files. The folder I imported is provided by the Nextcloud app, which will in turn automatically sync my changes with my cloud storage. If 1Writer can do this, I don’t really see why Obsidian can’t.

My understanding is that Obsidian needs access for all the indexing it does, which is only provided in an app’s own folder.

Despite you can’t do it directly, you can use an intermediary computer (Mac or Windows) do do it. You can also use a virtual machine.

Do do it you’ll need a to install in the intermediary computer (IC) and sync App (I recommend Resilio Sync or Syncthing).

If the IC is a Mac, you just need to configure the Sync App with your vault folder and configure it in your other devices.

If you’re a Windows user, you’ll need to install iCloud before configure before the Sync App configuration/step.

For Linux, this solution also works, however to use it as IC you need additional steps and knowledge (i.e. Docker, etc) and maintain the stuff working properly may be more “hardcore”.

Limitations: It requires the IC always ON so the cross device sync work in realtime on all your devices. If realtime remote sync is not mandatory, just turn ON the IC when desired.

It’s not a beautiful solution, however it works. :wink:

I use Code App (AppStore Link).

Github Link.

It has access to the ‘.obsidian’ folder and can use git, node.js, etc.

And Working Copy. As you say, some apps have found a way to work around those iOS restrictions.