Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode 启用应用程序沙箱时System()命令不起作用_Xcode_Cocoa_System_Entitlements_Sandbox - Fatal编程技术网

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()删除目录?非常感谢!真是一种享受!