使用 xattr 设置 Mac OSX 隔离属性

2024-01-08

StackOverflow 和其他地方有很多关于如何清除 Mac 隔离属性的信息。 就我而言,我想设置它。 这是为了测试我的应用程序是否已正确签名,以便用户在下载后会收到“不受信任的开发人员”警告。

我的应用程序特别大(我们从大文件下载网站分发,而不是商店),并且必须上传和下载来测试这一点并不方便。 过去一周我与代码签名进行了一些斗争,所以这个测试对我来说很重要。

一旦文件具有隔离属性,我就会看到如何更改它以具有以下值:

0002 = downloaded but never opened (this is the one that causes the warning)
0022 = app aborted by user from the warning dialogue (you hit 'cancel' in the dialogue)
0062 = app opened (at least) once (you hit 'open' in the dialogue)

但我一开始就不知道如何给它财产。


此代码并不难,但您需要 FSRef 来完成此操作,但已弃用。也就是说,它仍然可以在 10.9 上运行。您必须与 CoreServices 链接。

int main(int argc, const char * argv[]) {
  @autoreleasepool {
    if (argc != 2) {
      printf("quarantine <path>\n");
      exit(1);
    }

    NSString *path = @(argv[1]);
    OSStatus result;
    FSRef pathRef;
    result = FSPathMakeRef((UInt8*)[path UTF8String], &pathRef, 0);
    if (result != noErr) {
      NSLog(@"Error making ref (%d): %s", result, GetMacOSStatusCommentString(result));
      exit(result);
    }

    NSDictionary *quarantineProperties = @{(__bridge id)kLSQuarantineTypeKey: (__bridge id)kLSQuarantineTypeOtherDownload};

    result = LSSetItemAttribute(&pathRef,
                                kLSRolesAll,
                                kLSItemQuarantineProperties,
                                (__bridge CFTypeRef)quarantineProperties);

    if (result != noErr) {
      NSLog(@"Error setting attribute (%d): %s", result, GetMacOSStatusCommentString(result));
    }
    exit(result);
  }
  return 0;
}

另一种方法是将隔离信息从一个文件复制到另一个文件。您可以像这样序列化 xattr 信息:

xattr -p com.apple.quarantine file > file.xattr

然后,您可以将这些属性应用到另一个文件,如下所示:

xattr -w com.apple.quarantine "`cat file.xattr`" file

(That should工作,但我还没有特别对隔离进行测试。我使用类似的技术来保存代码签名并重新应用它们。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 xattr 设置 Mac OSX 隔离属性 的相关文章

随机推荐

  • 我可以定义只能包含这些值的 MyType 吗?

    我有这个问题 例如 如果我有这些值 AA AB AC BC 我可以定义仅包含这些值的 MyType 吗 我想在模式下做 type MyType something var X MyType begin x AA is valid AA is
  • 如何在 Python 中使用自定义消息引发相同的异常?

    我有这个try我的代码中的块 try do something that might raise an exception except ValueError as err errmsg My custom error message ra
  • 使用 Zurb Foundation 与 AngularJS 交换

    我正在开发一个 AngularJS 项目 该项目使用 Zurb Foundation 作为其 CSS 框架 我正在尝试弄清楚如何使用基金会的数据交换 http foundation zurb com docs components inte
  • 如何为 AWS S3 存储桶添加 ACL 受让人?

    到目前为止我能追踪到的docs https boto3 amazonaws com v1 documentation api latest reference services s3 html bucketacl 您可以获取并放置 S3 存
  • 如何“获取”dijit.layout.tabcontainer 中“单击”选项卡的 ID?

    我一直无法为此找到明确定义的解决方案 大多数都是不完整的片段 这是一个简单的示例 请参阅 doSomething 注释
  • 在没有焦点的情况下监视 tkinter 中的按键

    我正在使用 tkinter 在 Python 中编写一个小型计时模块 在这方面 我想全局监控何时按下退出键来停止计时 不幸的是 tkinters bind 和 bind all 函数仅在窗口处于焦点时才拾取击键 我已经研究了其他几个用于记录
  • 尝试在android中以编程方式模拟滑动

    我希望我的应用程序在单击按钮时模拟滑动触摸事件 向上 向下 向左 向右 然后 TextView 将向下 向上滚动 我尝试过使用 Motion Event 但是在我分别调度 ACTION DOWN ACTION MOVE 和 ACTION U
  • 下载数据库文件到app目录

    我想在使用 DownloadManager 单击按钮时更新应用程序的 sqlite 数据库 但它说 java lang IllegalArgumentException 不是文件URI data user 0 com example lau
  • 使用 asyncio 逐行读取文件

    我希望在写入多个日志文件时读取它们并使用 asyncio 处理它们的输入 该代码必须在 Windows 上运行 根据我在 stackoverflow 和网络上的搜索了解到 异步文件 I O 在大多数操作系统上都很棘手 select例如 将无
  • 使用自定义字体时如何垂直纠正导航栏的 titleView 文本位置?

    我们在导航栏中的 titleView 使用自定义字体 不知何故 苹果总是把这种字体画得太高 当您在导航栏中使用自定义字体时 如何纠正这种奇怪的偏移 I used setTitleVerticalPositionAdjustment forB
  • R:Rvest - 隐藏了我不想要的文字

    我正在对这个网络进行网络抓取 http www falabella com pe falabella pe category cat40536 Climatizacion navAction push 我只需要产品的信息 品牌 产品名称 价
  • 如何使用 Python 在 Windows 中创建符号链接?

    我正在尝试创建symlinks在 Windows 8 上使用 Python 我发现这个帖子 https stackoverflow com questions 1447575 symlinks on windows这是我脚本的一部分 imp
  • 如何将现有的kafka主题分区分散到更多目录中?

    默认情况下 kafka使用一个目录来保存日志 为了提高性能 建议将更多磁盘挂载到代理 并将每个磁盘分配给一个目录 然后在server properties输入log dirs 作为逗号分隔的目录列表 文档称 分区将以循环方式分布在目录中 据
  • 经典 ASP 有 OR/M 吗?

    是否有可在经典 ASP 中使用的 OR M 对象关系映射器 即使是简化的类对象也会对处理简单的 CRUD 任务有很大帮助 是的 我知道 ASP NET 有很多 我将其中一些用于 ASP NET 站点 然而 这是一个使用 ASP VBScri
  • Firebase 的云功能 - 在Write 上发送电子邮件

    当有任何内容写入时 我正在尝试向我的电子邮件发送一封测试电子邮件 emails但电子邮件永远不会发送 并且功能日志为空 exports sendTestEmail functions database ref emails onWrite
  • 如何指定绘图应转到哪个图形?

    我打开了多个图形 我想在运行时独立更新它们 下面的玩具示例应该可以阐明我的意图 clf figure name a and b a and b should be plotted to this window hold on ylim 10
  • 缩小浏览器时,响应式页脚显示在部分内容上

    我对 CSS 和 HTML 还很陌生 据我所知 这个问题已被问过多次 但我似乎无法解决当前的问题 我一直在从事一些小项目 比如尝试重新创建具有额外功能的其他网站 我当前的任务是重新创建一个首页搜索区域 例如 google 实施与发布 我一直
  • SharePoint:看不到任何筛选器 Web 部件

    在 Office 2007 官方网站中 有大量对筛选 Web 部件的引用 当我尝试添加其中之一时 Sharepoint 中的 Web 部件列表不显示任何筛选器 Web 部件 如果有人经历过相同的问题和任何解决方案 请发帖 Thanks 在
  • Perl 中美元符号和数字符号如何一起工作?

    今天遇到一个问题 要求我在perl中确定数组的最大索引 我曾经这样做过 my array 1 2 3 print array array 1 但今天我偶然发现了这段代码 my array 1 2 3 print array array 我在
  • 使用 xattr 设置 Mac OSX 隔离属性

    StackOverflow 和其他地方有很多关于如何清除 Mac 隔离属性的信息 就我而言 我想设置它 这是为了测试我的应用程序是否已正确签名 以便用户在下载后会收到 不受信任的开发人员 警告 我的应用程序特别大 我们从大文件下载网站分发