Xcode 启用应用程序沙箱时System()命令不起作用
苹果现在要求所有未来的应用程序都要进行沙盒处理,所以我按照说明对应用程序进行沙盒处理。生成成功,但随后我的Xcode 启用应用程序沙箱时System()命令不起作用,xcode,cocoa,system,entitlements,sandbox,Xcode,Cocoa,System,Entitlements,Sandbox,苹果现在要求所有未来的应用程序都要进行沙盒处理,所以我按照说明对应用程序进行沙盒处理。生成成功,但随后我的系统(rm-rf~/.Trash/*)命令停止工作。什么也没发生。我在这里感到困惑的是,为什么这个系统命令不能与上的应用程序沙箱/授权一起工作。以下是我的权利设置: 权利:勾选 应用程序沙盒:已选中 这是我目前的代码: - (void)viewDidLoad { [self emptyTrash]; } - (void)emptyTrash { system(rm -rf ~/.Trash
系统(rm-rf~/.Trash/*)
命令停止工作。什么也没发生。我在这里感到困惑的是,为什么这个系统命令不能与上的应用程序沙箱/授权一起工作。以下是我的权利设置:
权利:勾选
应用程序沙盒:已选中
这是我目前的代码:
- (void)viewDidLoad {
[self emptyTrash];
}
- (void)emptyTrash {
system(rm -rf ~/.Trash/*);
}
谢谢你的帮助 看一看
MacOSX路径查找API位于POSIX层之上,返回路径
相对于容器,而不是相对于用户的家
目录如果您的应用程序在沙箱之前访问
用户的实际主目录(~),并且您正在使用Cocoa或Core
基础API,然后在启用沙箱之后,找到路径。
代码会自动使用应用程序的容器
你可以用
struct passwd *getpwuid(uid_t uid);
struct passwd {
char *pw_name; /* user name */
char *pw_passwd; /* encrypted password */
uid_t pw_uid; /* user uid */
gid_t pw_gid; /* user gid */
__darwin_time_t pw_change; /* password change time */
char *pw_class; /* user access class */
char *pw_gecos; /* Honeywell login info */
char *pw_dir; /* home directory */
char *pw_shell; /* default shell */
__darwin_time_t pw_expire; /* account expiration */
}
#include <pwd.h>
#include <sys/types.h>
char *HomeDirectory = getpwuid(getuid())->pw_dir;
NSLog(@"%s", HomeDirectory);
system([[NSString stringWithFormat:@"rm -rf %s/.Trash/",HomeDirectory] UTF8String]);
struct passwd*getpwuid(uid\u t uid);
结构密码{
char*pw_name;/*用户名*/
char*pw_passwd;/*加密密码*/
uid\u t pw\u uid;/*用户uid*/
gid_t pw_gid;/*用户gid*/
__达尔文时间更改;/*密码更改时间*/
char*pw_类;/*用户访问类*/
char*pw_gecos;/*霍尼韦尔登录信息*/
char*pw_dir;/*主目录*/
char*pw_shell;/*默认shell*/
__达尔文时间到期;/*账户到期*/
}
#包括
#包括
char*homeditory=getpwuid(getuid())->pw_dir;
NSLog(@“%s”,HomeDirectory);
系统([[NSString stringWithFormat:@“rm-rf%s/.Trash/”,HomeDirectory]UTF8String]);
您确定清空用户的垃圾箱是您应该做的事情吗?一、 首先,我很高兴沙箱阻止你这么做!我不是100%确定(所以我只是在评论中说),但如果我没记错的话,在沙盒模式下,~
不会解析为/Users/username/
,而是解析为~/Library/Application Data
中的某个文件夹或类似的东西。。。再次检查沙盒上的文档。为什么需要使用system()删除目录?非常感谢!真是一种享受!