Skip to content

Commit 7bf649f

Browse files
committed
Use NSApplicationSupportDirectory for all darwin platforms
1 parent 6e9bdfb commit 7bf649f

File tree

3 files changed

+4
-8
lines changed

3 files changed

+4
-8
lines changed

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ Platform-specific application home and cache directories for KMP.
2929
| Platform | Cache Directory | Data Directory |
3030
|-----------------------|--------------------------------------------|--------------------------------------------|
3131
| Android | `context.cacheDir` | `ApplicationInfo.dataDir` |
32-
| IOS/IpadOs/WatchOs | `NSCachesDirectory` | `NSHomeDirectory` |
32+
| IOS/IpadOs/WatchOs | `NSCachesDirectory` | `NSApplicationSupportDirectory` |
3333
| Mac (native/jvm/node) | `~/Library/Caches/<app-id>` | `~/Library/Application Support/<app-id>` |
3434
| Windows (jvm/node) | `C:\Users\<user>\AppData/Caches/<app-id>` | `C:\Users\<user>\AppData/<app-id>>` |
3535
| Linux (jvm/node) | `~/.cache/<app-id>` | `~/local/share/<app-id>` |
@@ -58,7 +58,7 @@ val packageName = "example.com.app"
5858
val dataDirectory = appDataDirectory(packageName)
5959
```
6060

61-
This will return `ApplicationInfo.dataDir` on android, `NSHomeDirectory` on IOS and equivalent platform specific data
61+
This will return `ApplicationInfo.dataDir` on android, `NSApplicationSupportDirectory` on IOS and equivalent platform specific data
6262
directory on other platforms.
6363

6464
#### App cache directory

multiplatform-paths/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ mavenPublishing {
9595
pom {
9696
name.set("Multiplatform Paths")
9797
description.set(
98-
"Get platform specific app data and cache directory(equivalent to ApplicationInfo.dataDir or NSHomeDirectory) in Kotlin Multiplatform application",
98+
"Get platform specific app data and cache directory(equivalent to ApplicationInfo.dataDir or NSApplicationSupportDirectory) in Kotlin Multiplatform application",
9999
)
100100
}
101101
}

multiplatform-paths/src/darwinMain/kotlin/me/sujanpoudel/utils/paths/directories.darwin.kt

+1-5
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,13 @@ import me.sujanpoudel.utils.platformIdentifier.Platform
2323
import me.sujanpoudel.utils.platformIdentifier.platform
2424
import platform.Foundation.NSApplicationSupportDirectory
2525
import platform.Foundation.NSCachesDirectory
26-
import platform.Foundation.NSHomeDirectory
2726
import platform.Foundation.NSSearchPathForDirectoriesInDomains
2827
import platform.Foundation.NSUserDomainMask
2928

30-
actual fun dataDirectory(appId: String): Path = if (platform() is Platform.OS.MacOs) {
29+
actual fun dataDirectory(appId: String): Path =
3130
NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, true)
3231
.firstOrNull()?.toString()?.toPath()
3332
?.let { it / appId } ?: error("Unable to get 'NSApplicationSupportDirectory'")
34-
} else {
35-
NSHomeDirectory().toPath()
36-
}
3733

3834
actual fun cacheDirectory(appId: String): Path {
3935
val cachesDirectory = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, true)

0 commit comments

Comments
 (0)