diff --git a/daemon/src/fileutils.cpp b/daemon/src/fileutils.cpp
index 1fb3bd43b6ee14d5bd67762b193f5f313d48adab..b8653839dddc27033e9d3dad0acb123b7fb22ff1 100644
--- a/daemon/src/fileutils.cpp
+++ b/daemon/src/fileutils.cpp
@@ -309,6 +309,10 @@ get_cache_dir()
     } else {
 #ifdef __ANDROID__
         return get_home_dir() + DIR_SEPARATOR_STR + PACKAGE;
+#elif __APPLE__
+        return get_home_dir() + DIR_SEPARATOR_STR
+            + "Library" + DIR_SEPARATOR_STR + "Application Support"
+            + DIR_SEPARATOR_STR + PACKAGE;
 #else
         return get_home_dir() + DIR_SEPARATOR_STR +
             ".cache" + DIR_SEPARATOR_STR + PACKAGE;
diff --git a/daemon/src/managerimpl.cpp b/daemon/src/managerimpl.cpp
index d3b5aa17eb859fc303750f516419c97c9b11cac4..71e0ddc1fd1a61313ada05e2ef813c7ec60904f8 100644
--- a/daemon/src/managerimpl.cpp
+++ b/daemon/src/managerimpl.cpp
@@ -1920,6 +1920,10 @@ ManagerImpl::retrieveConfigPath() const
 {
 #ifdef __ANDROID__
     std::string configdir = "/data/data/cx.ring";
+#elif __APPLE__
+    std::string configdir = fileutils::get_home_dir() + DIR_SEPARATOR_STR
+        + "Library" + DIR_SEPARATOR_STR + "Application Support"
+        + DIR_SEPARATOR_STR + PACKAGE;
 #else
     std::string configdir = fileutils::get_home_dir() + DIR_SEPARATOR_STR +
                             ".config" + DIR_SEPARATOR_STR + PACKAGE;