对 macOS 命令行二进制文件进行签名、公证、强化等?

2023-12-20

对命令行二进制文件(stdin、stdout 等,无窗口或图标)进行强化、代码签名、公证、打包等最合适的方法是什么,以允许将二进制文件分发给 macOS Catalina 用户,因此他们可以以最少的痛苦/麻烦来运行该实用程序吗?

假设 GateKeeper 等的默认/库存操作系统配置。 假设用户当前很可能没有安装从源代码进行编译的工具或技能。 假设运行该实用程序时弹出的终端窗口不会吓到他们。


旧答案(2020):

我已经开始使用https://github.com/mitchellh/gon https://github.com/mitchellh/gon最近,我对此感到非常高兴。来自 Vagrant、Terraform、Packer 等的制造商。

更新答案(2022):

此时 Gon 几乎已经放弃软件了,这令人失望。不过,此后苹果也发布了notarytool https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution,它基本上做了 Gon 所做的事情。

I use 去发布器 https://goreleaser.com对于发布,这是我的公证步骤.goreleaser.yml文件。 (您应该能够很容易地将其转换回标准 shell 命令。)

signs:
  - id: gatekeeper
    ids:
      - macos-archive
    signature: "${artifact}"
    cmd: xcrun
    args:
      [
        "notarytool",
        "submit",
        "./dist/{{ .ProjectName }}-{{ .Version }}.darwin.universal.zip",
        "--apple-id",
        "{{ .Env.AC_APPLE_ID }}",
        "--password",
        "{{ .Env.AC_PASSWORD }}",
        "--team-id",
        "{{ .Env.AC_TEAM_ID }}",
        "--progress",
        "--wait",
      ]

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

对 macOS 命令行二进制文件进行签名、公证、强化等? 的相关文章

  • 在开发过程中自动允许访问 MacOS 辅助功能 API

    我正在开发一个使用辅助功能 API 的应用程序 每次我进行更改和重建时 我都必须删除该应用程序并将其重新添加到下面的 安全和隐私 可访问性 视图中 一段时间后这会变得非常烦人 有没有什么方法可以在开发时禁用此安全检查 或者即使应用程序本身正
  • OS X Cocoa 自动布局隐藏元素

    我正在尝试使用新的自动布局 http developer apple com library mac documentation UserExperience Conceptual AutolayoutPG Articles Introdu
  • 有 Mac 版的 IE 测试器吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在提交到 Mac App Store 的应用程序中调用 openssl 是否可以接受?

    我有点不清楚调用提交到 App Store 的应用程序之外的进程的规则是什么 我读到 如果您想使用 Cocoa 和 OSX 库之外的其他库 框架 您必须将其包含在您的应用程序中 例如 如果使用 QT Python 或 Ruby 编写应用程序
  • 默认 iPhone 地址簿人员电话号码标签周围有哪些标签?

    我的问题涉及 iPhone 上联系人列表的人员条目中一些默认电话号码标签周围的标记 我已经为 John Smith 创建了一个 iPhone 联系人列表地址簿条目 其中包含以下电话号码条目 手机 604 123 4567 iPhone 77
  • 在 Mac 上更新 Make 版本

    我正在尝试更新 mac 上的 make 版本 但遇到了问题 最小项目依赖项是 4 1 但我的版本似乎是 3 81 我已将 Xcode 更新到最新版本并安装了命令行工具 但它似乎仍然是旧版本 有谁遇到过这个问题或知道解决方法吗 这是我所做的
  • 让 TensorFlow 在 ARM Mac 上使用 GPU

    我已经安装了TensorFlow在 M1 上 ARM Mac 根据这些说明 https github com apple tensorflow macos issues 153 一切正常 然而 模型训练正在进行CPU 如何将培训切换到GPU
  • 更新 OSX 命令行工具 6.3 后缺少 C++ 标头 <__debug>

    从 App Store 更新到 Command Line Tools 6 3 后 程序包括
  • 如何在全屏视图前面显示 NSPanel?

    我的应用程序以全屏方式运行 我需要类似 iOS 的 UIPopoverController 之类的东西 第一个想法是使用 NSPanel 但我无法让它显示在全屏视图前 我需要一个类似 UIPopoverController 的 Cocoa
  • 如何从远程 ssh 连接上运行的 tmux(复制模式)复制到本地剪贴板

    我通过 OS X 上的 VirtualBox 运行 Linux 我通过在无头状态下运行虚拟机 然后使用端口转发 sshing 到 Linux 机器来实现这一点 现在 无论复制到我的虚拟机上的剪贴板 我都可以粘贴到我的远程 ssh 会话上 但
  • 如何在 apache 中访问唯一 ID?

    如何访问 apache 跟踪每个请求的 unique id 我想在它调用的任何 php 脚本中跟踪它 并记录每个请求 我删除了以下行的评论http conf file LoadModule unique id module libexec
  • 如何更改 OS X 应用程序包中的可执行文件

    我想在 Firefox 启动之前和退出之后运行一个脚本 在 Ubuntu 中 我通过创建一个新的快捷方式来实现此目的 该快捷方式首先调用我的函数 然后调用 firefox 命令 然后调用我的最后一个函数 由于 firefox 命令会阻塞直到
  • 拖动调整 NSView(或其他对象)的大小

    我正在尝试构建一个应用程序 允许用户使用可以调整大小的矩形边界框来指定图像的多个区域 到目前为止 我已经有一个NSScrollView其中包含一个NSImageView这样用户就可以放大图像并根据需要滚动 我目前的想法是我可以使用NSVie
  • 检查文件是否是别名 Swift

    如何在 Mac 上检查文件是否为别名 到目前为止 这是我的代码 public func getFiles let folderPath Users timeBro Desktop testfolder let fileManager NSF
  • Java:如何检测(并更改?)System.console 的编码?

    我有一个在控制台上运行的程序 其变音符号和其他特殊字符在 Mac 上以 的形式输出 这是一个简单的测试程序 public static void main String args System out println h h System
  • 如何在 SceneKit 中以编程方式将 png 纹理包裹在立方体周围

    我是 SceneKit 的新手 试图让一些基本的东西工作 但到目前为止还没有取得多大成功 由于某种原因 当我尝试将 png 纹理应用于 CNBox 时 我最终除了黑色之外什么也没有 这是我在 viewDidLoad 中的简单代码片段 let
  • Swift 上的 USB 连接委托

    Swift 中是否有一个代表可以让我的班级知道何时通过计算机的 USB 插入新设备 我想知道我的程序何时可以使用新设备 Eric Aya 的答案已经相当不错了 但这里有一个 Swift 3 的改编 我把大部分丑陋的东西包裹在一个USBWat
  • OSX 中的动态链接优先级之间存在冲突吗?

    OSX 上不同 libjpeg 动态库之间存在动态链接冲突 首先有一个标准的本机 libJPEG dylib 位于 System Library Frameworks ImageIO framework Versions A Resourc
  • 将 bash 提示符下的当前命令复制到剪贴板

    我想要一个快速的键盘命令序列 将 bash 提示符处的当前命令复制到剪贴板 例如 要将最后一个 bash 命令复制到剪贴板 我会按 up some command sequence 复制它 或者 例如 要在 bash 历史记录中搜索命令 我
  • Eclipse 在 Android SDK 内容加载器处挂起

    我已经在 OS X 10 8 2 上使用 Eclipse 4 2 Juno 版本 20120920 0800 几个星期了 为 Android 3 0 及更高版本构建应用程序 我有一台带 SSD 的四核 i7 MacBook Pro 因此性能

随机推荐

  • 为什么VS代码中的这个问题匹配器不起作用?

    为什么我的 ProblemMatcher 不起作用 我对正则表达式非常确定 但它没有报告任何问题 即使标准输出上有一些问题 the matcher problemMatcher owner typescript fileLocation r
  • PAR::Packer 如何工作?

    我正在使用 PAR Packer 这个问题突然出现在我的脑海中 PAR Packer 在 Perl 中如何工作 真的吗compilePerl 脚本到 exe 就像 g 将 C 源代码编译到 exe 一样 还是像 Python 中的 py2e
  • 自首次启动以来的时间

    我正在开发一个 Android 应用程序 并遇到了确定系统首次启动时间的问题 我的意思是我需要测量多少从设备首次启动起已经过了时间 我知道有关侦听 ACTION BOOT COMPLETED 并将任何内容保存在 SharedPreferen
  • C# 与 C++ - 类型、继承和 vtable

    我无法理解导致 C 和 C 之间差异的原因 首先我们有一个例子 其中基类包含一个虚函数 class Base protected int super public virtual int f 0 class Derived public B
  • 我如何使用.NET 获悉我的客户端IP?

    我需要来自whatismyip com 的客户端IP 但我认为正则表达式模式不正确 你能帮我这个图案吗 您是否阅读了获取的 HTML 中的注释 请设置您的代码以进行抓取 你的IP来自 www whatismyip com automatio
  • Matplotlib 中 X 轴的换行符导致意外的窗口大小调整/跳跃/闪烁行为

    我正在 matplotlib 中的 x 轴上绘制日期和时间 因为我想绘制尽可能多的标签 所以我在 x 标签中使用换行符 如下所示 不幸的是 当我将鼠标悬停在图表上时 这会产生调整 matplotlib 窗口大小的副作用 因为它尝试在底部打印
  • Twitter Bootstrap 的 JQgrid 样式问题

    我使用 JQgrid 来显示信息并执行 CRUD 操作 我想要一个具有 Twitter Bootstrap 外观和感觉的页面 并且 JQGrid 显示一些数据 但是如果我导入 JQGrid 的 CSS 和 Bootstrap 的 CSS 则
  • 编译器未识别出歧义

    我不得不花一些时间来查找并修复我设法在以下代码中隔离的错误 include
  • 发送带有 Unicode 的 HTML 邮件

    我修改了 python 文档中的示例 以测试电子邮件模块中的 unicode usr bin env python coding utf 8 from future import absolute import division unico
  • MySQL“SET NAMES”靠近慢查询日志的顶部

    在最近启动的一个网站上 我注意到 在数百万个查询中 成本最高的请求实际上是 SET NAMES 其平均耗时超过 2 3 秒 而各种多连接并集的查询时间远远超过该网站上实际的繁重查询 查询时间远低于 2 秒 最后 这将它放置在慢查询日志的顶部
  • 如何收集类似于 panopticlick.eff.org 的信息 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 仅在 MSCHART 折线图的数据点上显示工具提示

    我在 C 4 0 中使用 mschart 生成折线图 并创建 DataPoint 来显示点上的工具提示 但问题是 工具提示出现在线条的每个点上 但是我只想在我的数据点上 您可能已经找到了问题的解决方案 因为这篇文章已经很旧了 但我想做同样的
  • 使用 MediaRecorder API 无法在录制的视频中进行搜索

    我正在尝试使用 MediaRecorder API 构建屏幕录制 作为暗示性媒体记录的方法 var chunks var recorder new MediaRecorder stream recorder streams stream r
  • 查找数组中最长的连续子序列

    我的任务是编写一个程序 找到给定数组中最长的递增连续子序列 并打印该子序列的长度及其本身 假设数组是 int arr 3 6 5 1 9 3 2 3 4 5 1 最长的连续递增子序列是2 3 4 5 长度为4 所以这个方法的输出是 4 2
  • 如何链接到循环内的嵌套路由路径?

    在我的应用程序中 我有故事和子故事 子故事嵌套在故事内部storiesindex html erb 我在所有故事中循环 在内部我在所有子故事中循环 这是代码
  • WinRM 无法处理该请求。错误0x80090311

    我有 2 个具有本地管理员帐户的系统 SR01 和 SR02 两个系统都在同一域中 本地管理员帐户相同但密码不同 这些机器是虚拟机 当我从 SR01 到 SR02 运行 Enter pssession 时 它会抛出以下错误 错误 Enter
  • Json.NET 可以反序列化“动态”属性吗?

    我的 C 服务正在从外部服务接收具有 模糊 格式的对象 如下所示 member
  • proguard 混淆后与现有的、不兼容的同名和类的 bean 定义冲突

    经过 Proguard 混淆后 我收到以下错误 从 ServletContext 资源解析 XML 文档时出现意外异常 WEB INF applicationContext xml 嵌套异常是 java lang IllegalStateE
  • 如何修复 MacOS High Sierra 上 Home-brew 的权限

    当我尝试将 python 安装到 homebrew 上时 它下载了它 然后最后弹出一条错误消息 阻止它完成 当我尝试再次执行此操作时 它要求我执行以下操作 brew link python 输入后出现相同的错误消息 permission d
  • 对 macOS 命令行二进制文件进行签名、公证、强化等?

    对命令行二进制文件 stdin stdout 等 无窗口或图标 进行强化 代码签名 公证 打包等最合适的方法是什么 以允许将二进制文件分发给 macOS Catalina 用户 因此他们可以以最少的痛苦 麻烦来运行该实用程序吗 假设 Gat