You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何程序化从notarytool获取submission ID?脚本实现疑问

macOS应用公证:获取submission ID的实用方法

先明确:你看到的ID就是submission ID

测试时输出的id: xxx-xxx-xxx-xxx里的字符串,就是官方文档里说的submission ID,可以直接用于notarytool log命令调用。

程序化获取的最优方式(推荐)

notarytool submit支持--output json参数,直接输出结构化的JSON结果,用jq解析比纯文本匹配靠谱得多(避免苹果调整输出格式导致脚本失效)。如果没装jq,用Homebrew安装:brew install jq。

修改后的完整脚本如下:

#!/usr/bin/env bash
user="$1"
pass="$2"
teamId="$3"
archivePath="$4"

# 提交归档并通过JSON输出提取submission ID
submissionId=$(xcrun notarytool submit --wait \
  --apple-id "$user" \
  --password "$pass" \
  --team-id "$teamId" \
  --output json \
  "$archivePath" | jq -r '.id')

# 校验ID是否获取成功
if [ -z "$submissionId" ]; then
  echo "获取submission ID失败"
  exit 1
fi

# 下载公证日志
xcrun notarytool log --apple-id "$user" --password "$pass" --team-id "$teamId" "$submissionId"

备用方案:纯文本解析(不推荐)

如果不想依赖jq,也可以直接解析命令的文本输出,用grep+cut提取:

submissionId=$(xcrun notarytool submit --wait \
  --apple-id "$user" \
  --password "$pass" \
  --team-id "$teamId" \
  "$archivePath" | grep -E '^id: ' | cut -d' ' -f2)

注意:这种方法完全依赖notarytool的输出格式,一旦苹果调整文本排版,脚本就会失效,仅作为临时应急方案。

内容的提问来源于stack exchange,提问作者void.pointer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 10:59:57