Open gschier opened 3 days ago
Okay, it looks like this was indeed my fault. However, it seems that Tauri did not surface the error that would have helped me fix it.
Running the sign command directly worked, because I committed the binary directly to the repo. I did this on macOS.
However, signing the full app downloads and extracts the protoc
binary from a GitHub release. The issue was that it extracts with a read-only permission.
I adjusted the test workflow to use the download script and got this helpful error: https://github.com/mountain-loop/yaak/actions/runs/11987805359/job/33422398760
[
{
"cloudName": "AzureCloud",
"homeTenantId": "***",
"id": "b045e283-89f9-42ff-bd9a-95f6e7a9b035",
"isDefault": true,
"managedByTenants": [],
"name": "Yaak Subscription",
"state": "Enabled",
"tenantId": "***",
"user": {
"name": "***",
"type": "servicePrincipal"
}
}
]
SignTool Error: Access is denied.
Number of files successfully Signed: 0
SignTool Error: An error occurred while attempting to sign: src-tauri/vendored/protoc/yaakprotoc-x86_64-pc-windows-msvc.exe
Number of warnings: 0
Number of errors: 1
thread 'main' panicked at C:\Users\runneradmin/.cargo\registry\src\index.crates.io-6f17d22bba15001f\trusted-signing-cli-0.3.0\src/main.rs:157:10:
called `Result::unwrap()` on an `Err` value: Custom { kind: Other, error: "command [\"C:\\\\Program Files (x86)\\\\Windows Kits\\\\10\\\\bin\\\\10.0.22000.0\\\\x64\\\\signtool.exe\", \"sign\", \"/v\", \"/fd\", \"SHA256\", \"/tr\", \"[http://timestamp.acs.microsoft.com\](http://timestamp.acs.microsoft.com/)", \"/td\", \"SHA256\", \"/dlib\", \"C:\\\\Users\\\\runneradmin\\\\.trusted-signing-cli\\\\lib\\\\bin\\\\x64\\\\Azure.CodeSigning.Dlib.dll\", \"/dmdf\", \"C:\\\\Users\\\\runneradmin\\\\.trusted-signing-cli\\\\metadata.json\", \"src-tauri/vendored/protoc/yaakprotoc-x86_64-pc-windows-msvc.exe\"] exited with code 1" }
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Error: Process completed with exit code 1.
So it seems that Tauri is silencing stderr of the custom sign command?
So it seems that Tauri is silencing stderr of the custom sign command?
It may be hidden behind the --verbose flag (or -vv / -vvv, not sure if the verbosity level matters here) 🤔
Which command would that flag be on? Tauri should be running the same command as my test case
tauri build --verbose
, or in tauri-action args: --verbose
. The signCommand will be executed the same way, we'd just check if the tauri cli is hiding some command output from us.
Ah great, I will give this a try, thanks!
Describe the bug
I'm trying to get Azure Trusted Signing working for my app github.com/mountain-loop/yaak. It signs the main
.exe
correctly, and correctly skips the already-signed NodeJS sidecar. However, it seems to fail on the unsignedprotoc
sidecar.Here is the output from https://github.com/mountain-loop/yaak/actions/runs/11976760384/job/33393142512
Reproduction
As seen in the
tauri.conf.json#L82
, the sign command I'm using is:To debug this, I created a new workflow to simply run this command on the
protoc
binary (committed it directly to the repo for simplicity), and it succeeded: https://github.com/mountain-loop/yaak/actions/runs/11975020946/job/33387429516Expected behavior
protoc
binary should sign successfully duringtauri-action
buildFull
tauri info
outputStack trace
No response
Additional context
No response