0

我正在尝试删除放置在文件中的“com.apple.quarantine”属性

~/图书馆/容器/....../图书馆/应用程序支持。

使用 NSTask 和 xattr 会导致控制台中出现“不允许操作”消息。作为第二个选项,我使用 removexattr() 尝试了标头 xattr.h。

我还尝试将 LSFileQuarantineEnabled 添加到 Info.plist。从终端手动调用 xattr 有效。

似乎沙盒阻止 xattr 使用 Objective-C 删除属性。

4

1 回答 1

0

在沙盒应用程序中运行辅助二进制文件...

对于第一次测试:

  1. 使用“钥匙串访问”创建证书
    1. “证书助手”>“创建证书...”
    2. 给它命名...
    3. 覆盖默认设置
    4. ...
  2. codesign -s <certificate A> <binary>
  3. 将二进制文件复制到您的项目中
  4. 检查它是否在“构建阶段”>“复制捆绑资源”中链接
  5. 转到产品 > 存档
    1. 分发 ...
    2. 导出为应用程序
    3. 使用您的签名身份

如果要将其发送到 Mac App Store,请使用正确的证书。

我用来启动/调用辅助二进制文件的代码如下:

NSString * resourcePath = [[NSBundle mainBundle] resourcePath];
NSTask *testbin = [[NSTask alloc] init];
NSString * path = [resourcePath stringByAppendingString:@"/testbin"];
[testbin setLaunchPath:path];
[testbin launch];
[testbin waitUntilExit];

无需复制或移动文件 ;-)

于 2014-08-18T15:58:49.803 回答