My goal is to enable offline updates for video game cabinets at locations without stable wifi access. The version of snapcraft I used to build a snap locally has confusing syntax for the sign-build
option. How do I generate an assertion for my local package? The following are my build details and a shell session to demonstrate how I got to the roadblock.
lee@freddie:~/src/arcade-builds/snaps/perfect_pour$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=24.04
DISTRIB_CODENAME=noble
DISTRIB_DESCRIPTION="Ubuntu 24.04.2 LTS"
lee@freddie:~/src/arcade-builds/snaps/perfect_pour$ uname -a
Linux freddie 6.8.0-57-lowlatency #59.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Mar 20 03:40:08 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
lee@freddie:~/src/arcade-builds/snaps/perfect_pour$ snapcraft --version
snapcraft 8.7.4
lee@freddie:~/src/arcade-builds/snaps/perfect_pour$ snap --version
snap 2.67.1+24.04
snapd 2.67.1+24.04
series 16
ubuntu 24.04
kernel 6.8.0-57-lowlatency
lee@freddie:~/src/arcade-builds/snaps/perfect_pour$ ls -l *.snap snapcraft.yaml
-rw-r--r-- 1 lee lee 53800960 Apr 10 08:35 perfect-pour_v0.19.0-b1_amd64.snap
-rw-rw-r-- 1 lee lee 2949 Apr 10 08:20 snapcraft.yaml
snapcraft login
succeeded with the Ubuntu One account I use to upload online releasessnapcraft create-key offline-install
succeeded locallysnapcraft register-key offline-install
succeeded to register the key to my accountsnapcraft sign-build ...
fails with the following syntax attempts.
lee@freddie:~/src/arcade-builds/snaps/perfect_pour$ snapcraft sign-build --local --key-name offline-install ./perfect-pour_v0.19.0-b1_amd64.snap
Usage: snapcraft [options] command [args]...
Try 'snapcraft sign-build -h' for help.
Error: unrecognized arguments: ./perfect-pour_v0.19.0-b1_amd64.snap
lee@freddie:~/src/arcade-builds/snaps/perfect_pour$ snapcraft sign-build --local --key-name offline-install perfect-pour
Usage: snapcraft [options] command [args]...
Try 'snapcraft sign-build -h' for help.
Error: unrecognized arguments: perfect-pour
lee@freddie:~/src/arcade-builds/snaps/perfect_pour$ snapcraft sign-build ./perfect-pour_v0.19.0-b1_amd64.snap --local --key-name offline-install
Usage: snapcraft [options] command [args]...
Try 'snapcraft sign-build -h' for help.
Error: unrecognized arguments: ./perfect-pour_v0.19.0-b1_amd64.snap
lee@freddie:~/src/arcade-builds/snaps/perfect_pour$ snapcraft sign-build --local --key-name offline-install $(pwd)/perfect-pour_v0.19.0-b1_amd64.snap
Usage: snapcraft [options] command [args]...
Try 'snapcraft sign-build -h' for help.
Error: unrecognized arguments: /home/lee/src/arcade-builds/snaps/perfect_pour/perfect-pour_v0.19.0-b1_amd64.snap
What is the correct syntax to sign a build locally?