公证流程

License Language

用于启动 xcrun altool 公证应用并获取公证信息的实用工具对象。

公证应用

let process = NotarizeProcess(username: username, password: password)
let upload = try process.notarize(app: appArchiveURL, bundleID: "your.app.bundle.id")

或针对 .app 文件

将使用 ditto 创建一个归档文件。

let upload = try process.notarize(app: appURL, bundleID: "")

如果 bundleID 参数为空,我们将从 .app 的 Info.plist 中提取它。

获取关于已公证应用的信息

let info = try process.notarizationInfo(for: upload) // or upload.requestUUID

您也可以等待最终结果

let info = try process.waitForNotarizationInfo(for: upload, timeout: 30 * 60)

获取历史记录

let history = try process.notarizationHistory() // page: i

和完整信息

for item in history.items {
    let info = try process.notarizationInfo(for: item)
    print("\(info)")
}

从信息中获取审计日志

let info = try process.notarizationInfo(for: id)
let publisher = info.auditLogPublisher() // using Combine framework

_ = publisher.sink(receiveCompletion: { completion in
...
}) { auditLog in
...
}

Stapler

附加票据

try process.staple(app: appURL)

验证

try process.validate(app: appURL)

一体化

try process.run(action: [.notarize, .wait, .staple] /*.all*/, on: appURL)
try process.run(action: .all, on: appURL)
try process.run(on: appURL)

依赖项

Dependencies graph