В BSD Unix, включенном в OS-X, вы можете получить домашний каталог пользователя, запустившего программу, с этим:
struct passwd *p = getpwuid(getuid()); /* defined in pwd.h, and requires sys/types.h */
char *home = p->pw_dir;
Используя это, вы можете затем построить путь, используя это вместо ~
char *my_app_name = "WHATEVER";
char app_support[MAXPATHLEN]; /* defined in sys/param.h */
snprintf(app_support,MAXPATHLEN,"%s/Library/Application Support/%s", home, my_app_name);