You’ll need to add build dependencies as build-packages (these aren’t included in the final snap) and dependencies as stage-packages. See here for more info.

build.snapcraft.io (and I think cleanbuild, though I’m not sure?!) use Ubuntu 16.04 to get their packages. So searching for libgtk in Ubuntu Xenial (16.04), we get this. This indicates that you need to add libgtk-3-0 to your snapcraft.yaml as a stage-package.

It would help you if you could find something in Zotero’s documentation that says what its dependencies for Linux distros are

The chances are that seccomp is killing your application causing the segfault message when you start with desktop-launch. To diagnose, try installing snappy-debug and running the scanlog which will advise any missing plugs that it knows about:

You might be able to get some hints by running the app through strace, but that is in-depth and difficult to read the output, and may not be helpful anyway. It still a good thing to try, though. Using strace might, for example, allow you to correlate that a particular syscall returned a result the app didn’t expect, such as being unable to find a particular library.