即使在签名和公证后运行 macOS CLI 工具时,终端中的权限被拒绝 GateKeeper 警告

我一直在尝试让我的 CLI 工具在不显示任何 GateKeeper UI 的情况下运行,这让用户的体验更加烦人。

as5101 回答:即使在签名和公证后运行 macOS CLI 工具时,终端中的权限被拒绝 GateKeeper 警告

我终于意识到我错过了什么。我需要在二进制文件中嵌入一个 Info.plist,它由 .pkg 安装程序安装。这是因为 macOS GateKeeper 在启动二进制文件时会寻找它。我必须做 3 件事:

  • 在项目中的某处创建一个 Info.plist(我推荐项目的根目录),它至少有 3 个项目,CFBundleIdentifier、CFBundleName 和 CFBundleShortVersionString。我从 Howard Oakley's blog post
  • 获得了这个要求
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleIdentifier</key>
    <string>com.example.example-cli-tool</string>
    <key>CFBundleName</key>
    <string>Example CLI Tool</string>
    <key>CFBundleShortVersionString</key>
    <string>1</string>
</dict>
</plist>
  • 在构建设置中引用此 Info.plist:将 Info.plist 文件设置为路径,例如 $(PROJECT_DIR)/Info.plist
  • 在构建设置中,我必须将 Create Info.plist Section in Binary 设置为是。

然后在我归档项目后,构建包安装程序,将其下载到我的机器上,安装了该包,我没有权限被拒绝/GateKeeper 警告。


我发布了构建和交付 Xcode CLI 项目的分步操作,包括公证 here

本文链接:https://www.f2er.com/681914.html

大家都在问