Migrating to v4
iOS
No breaking changes 😌
Android
v4 introduces some changes to permission requesting & where we write files to disk.
getExternalStorageDirectory -> getExternalCacheDir
If your app targets API 29 you'll notice getExternalStorageDirectory
is now deprecated. We've therefore migrated where we save files to disk (ie: in the base of base64 sharing) to use getExternalCacheDir which has been available since API 8.
What you need to do
If your app relies on where files were being saved before, you'll need to update the paths you use accordingly.
Also if you've designated a FileProvider
in your AndroidManifest, you'll need to whitelist the correct path, ie:
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
- <external-path name="myexternalimages" path="Download/" />
+ <external-cache-path name="myexternalimages" path="Download/" />
</paths>
Removal of WRITE_EXTERNAL_STORAGE permission request
If you're targeting versions from KITKAT (API 19) you no longer need to ask for permission to write to storage, so we've skipped that prompt in that case. If your app was displaying messaging to prep your users or otherwise expected this prompt to occur, be advised.
Per the Android docs:
Starting in Build.VERSION_CODES.KITKAT, no permissions are required to read or write to the returned path; it's always accessible to the calling app. This only applies to paths generated for package name of the calling application.