How to save a text file in external storage in ios using flutter?
You can save the file in the NSDocumentsDirectory (getApplicationDocumentsDirectory()
) and then make it available to the user.
From: https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html
Use this directory to store user-generated content. The contents of this directory can be made available to the user through file sharing; therefore, his directory should only contain files that you may wish to expose to the user.
To make the directory available to the user you need to open the Xcode project under 'your_app/ios/Runner.xcworkspace'. Then open the Info.plist file in the Runner directory and add two rows with the key UIFileSharingEnabled
and LSSupportsOpeningDocumentsInPlace
. Set the value of both keys to YES
.
If you now open the Files app and click on 'On My iPhone' you should see a folder with the name of your application.
I have used below code to fix this.
Directory directory = Platform.isAndroid
? await getExternalStorageDirectory() //FOR ANDROID
: await getApplicationSupportDirectory(); //FOR iOS
also add those files as mentioned by @Gabrielhn
As a compliment do @ni. answer, you must enable both keys. This is what it should look on:
Xcode (info.plist):
Info.plist on Xcode
Editor (info.plist):
<key>LSSupportsOpeningDocumentsInPlace</key>
<true/>
<key>UIFileSharingEnabled</key>
<true/>
Info in source:
In iOS 11 and later, if both this keys LSSupportsOpeningDocumentsInPlace and the UIFileSharingEnabled key are YES, the local file provider grants access to all the documents in the app’s Documents directory. These documents appear in the Files app, and in a document browser. Users can open and edit these document in place.
Source: Apple developer - iOS keys