Output formats¶
1. App stores¶
Conveyor supports releasing to the Microsoft Store. When you go this route, Microsoft will sign your app for you at much lower cost than buying certificates.
Releasing to the Mac App Store isn't supported. Vote for Mac App Store support here.
2. DMGs?¶
No plans because zips work better. The downside is you don't get to theme the 'install experience'. If you need DMGs for some reason we've overlooked, please let us know.
3. Mac PKGs?¶
We'd like to add PKG support in the future. These are needed for uploading to the app store, and for installing files to unconventional places.
4. MSIs?¶
We have no plans to do this. MSI is deprecated. MSIX is Microsoft's current recommended install technology, but we're interested in learning about use cases that require alternatives.
5. FlatPak? Other distros? Non-Intel Linux?¶
Conveyor produces tarballs for x86 distros that use other packaging systems.
FlatPak looks promising, doesn't it? Vote for support here.
Linux/Aarch64 may be added later. Vote for support here.
6. RPMs¶
Some initial work was done. If there's interest this can be added.
7. Why does the Debian install process differ to normal?¶
A common approach to installing packages from third party repositories is to manually import a GPG key, then manually add an apt
source, then finally use apt-get update && apt-get install <program>
to fetch it. This is tedious and manual. Conveyor DEBs include the GPG key and apt source file inside them, so you can install them by just downloading the file and then running apt install ./program-name*.deb
(this command will also do dependency resolution so no features are lost). Users can also double click the DEB in their file manager if they want a GUI.
The level of security is the same because the original DEB will have been downloaded over SSL, and you'd get the GPG key from the same location anyway.
8. Are Mac apps fat?¶
For native apps, it depends on what your build system produces. The CMake template app does create fat binaries.
For JVM and Electron apps, no. Conveyor produces separate downloads for ARM and Intel Macs. This is to keep download times fast. Chrome users will have their CPU auto detected and will only be offered the right package for their CPU. Safari advertises itself as Intel even on ARM Macs (deliberately), so Safari users will be given a choice and are expected to know what kind of Mac they have.
If you'd like your Mac apps to be fat please vote for support here.
9. Ubuntu Snaps?¶
Not at this time. Snaps are a format specific to the Ubuntu app store. If you want Snap support, please let us know so we can consider raising its priority. Without strong feedback on this we'll probably focus on FlatPak.
10. Docker?¶
Conveyor supports making Linux servers with full systemd integration. It doesn't produce Docker images at this time. Other tools exist that make Docker images and so Conveyor probably doesn't have much to add here, but if you'd like this feature please let us know so we can understand your needs.
Incidentally, although Docker is a great tool Conveyor supports systemd because we use Conveyor-generated packages for our own servers. We feel that:
- SystemD has better service management features like task dependencies, activation, logging etc.
- SystemD has better command line tools, including neat third party tools like sysz.
- SystemD has better support for sophisticated sandboxing.
- Docker requires careful configuration to avoid accidentally deleting persistent data saved to disk by the server. SystemD is harder to misconfigure.
- Native package formats allow for depending on things like database engines, which would otherwise require additional setup in Docker.
- Distribution package managers have evolved a wealth of features useful for devops and sysadmin teams, like merging changes to config files (DEBs produced by Conveyor support the Debian conffiles mechanism).
11. A corporate IT department needs to repackage my app.¶
MSIX files are fully supported by Windows network administration systems like Active Directory, but if an IT department doesn't want to use MSIX that's OK. Conveyor produces plain zips too. In fact MSIX files are also just signed zip files with extra metadata. IT departments can extract the MSIX and read the AppxManifest.xml
file to learn what integration points are needed (e.g. start menu items), then repackage as needed.
12. How do I find my app's install folder on Windows?¶
Windows doesn't store MSIX packages directly under c:\Program Files
as you might expect, due to the containerization. Instead it's stored under c:\Program Files\WindowsApps
in a folder name containing a hash of the certificate. The best way to view it and do many other tasks with MSIX is to grab the wonderful MSIX Hero, pick your app from the list and then click open and then "Installation folder". This will open an Explorer in the right place. MSIX Hero also lets you run command shells and other tools inside the container.
13. What sizes can I expect from delta updates?¶
This depends on what app framework you use, the type of the change you make to your app and so on.
- Electron. A single line change to the JS of the generated "hello world" scaffold app yields an approximately 31kb delta patch on macOS, and 115kb on Windows.
- JVM. Delta updates for JVM apps are currently generally the size of each JAR file that changes. This is because it's conventional for both the name of a JAR file and the contents to change simultaneously (due to version numbers), which Conveyor currently sees as deleting an old file and adding a different file. This can easily be optimized to yield smaller deltas, please get in touch with us if you are/will be a commercial customer and would like to see size reductions here.
Please see understanding delta updates for more info.