How can I download to a persistent folder via the Web component on AI2 for iOS?

When I use the Web component to download audio files (mp4) from my server via an app with AI2 for iOS, I get the following path, among others:
/private/var/mobile/Containers/Data/Application/77E6D664-136A-4501-BDE4-97596C422A1E/tmp/Music-1.m4a.

I then save this path in a TinyDB and pass it to the Player component (Player.Source), which then plays it. This works with Companion and the compiled app (IPA). However, if I restart the app, this path no longer seems to be correct (no longer exists).

Apparently, these are temporary files (in the sandbox) that are no longer there after restarting the app. Is there a way to write (download) to a persistent folder using the Web component?
@ewpatton

Is this happening in both companion and compiled apps? Do you want to PM me the project so I can test it?

Yes.

Of course. Done.

Sorry, I checked it again. It works with Companion also after reloading, but definitively not with the IPA (after restarting the app).

Error 702: Unable to prepare.

Setting a ResponseFileName has no effect on iOS.

I repeated my tests with the IPA today on three test devices. These tests actually differ from my tests of the past few months. In fact, the previous paths seemed to disappear after restarting the app. At least, the music from there could no longer be played ("unable to prepare").

My tests today actually showed that it still works even after restarting the app.

My tests with the IPA on:

  • iPhone 15 Pro Max (iOS 26.0.2),
  • iPad Pro 12.9 (iOS 18.5) -> Upgrade to iOS 26 coming...
  • iPhone 6s (iOS 15.8.2)

No idea why it seems to be working since today. I'll wait and see how long these paths will work...

An AI response is:

What option do I have in AI2 for iOS to check whether such a path still exists? Unfortunately, the File.Exists method doesn't work on iOS. I can only see one (cumbersome) method: adding another Player component, setting the volume to 0, setting the path as Player.Source, playing the music, and checking whether Player.IsPlaying returns "true" (then stopping this test player). If not, the download must be repeated. This check would have to be performed before each app restart (i.e., in the Screen.Initialize event and via a timer).

Barely two hours later, it stopped working on my iPhone 15 Pro Max.
(Error 702: Unable to prepare)