-
-
Notifications
You must be signed in to change notification settings - Fork 353
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Package Mac releases as .app #66
Comments
Would it be worth it to do the same with Windows releases? As in packaging as |
Maybe? I'm not sure what's the standard way to distribute things like this. The game internally needs to use a filesystem, and the actual individual files are useful for people to see -- like submitting data/player/edits. I'm not a Windows or a Mac user and I don't have regular access to either. If anybody could help with this bug to simplify things for Mac folks, it'd be much appreciated! |
I just opened #896 to integrate macos code signing and notarization into the repository. One question is how do we want to handle the many executables - does each become its own app? I think that makes the most sense for all the graphical apps like there'd be a As for the command line apps like the Apart from that, some other things I think we'll have to do to get an app working:
|
Awesome, thank you!!! I'll give this a spin this weekend, and with all luck, produce the first signed build tomorrow!
Each executable as its own app sounds sensible to me, as long as they can share system and player data directories without any problems. I'd strongly prefer to not bundle the CLI and updater directly with the UI apps, because it'd noticeably bloat the compile time and final size. Size of all the executables total would increase noticeably by all repeating. (I don't have numbers handy, but I'm pretty certain I tried this out back when I started splitting things out and including the importer in the release.) But maybe the updater and importer don't need to be apps at all, just signed and notarized? Nobody will double click them. The UI apps invoke them. I guess we can see what the rules are there.
We can already do both of these via abstreet/abstio/src/abst_paths.rs Line 15 in b867859
ABST_DATA_DIR and ABST_PLAYER_HOME_DIR are env variables respected during cargo build.
... Although looking at it, for the latter, it looks like it evaluates
To |
To clarify, I said embed it in the .app, not the executable — an .app (which is just a directory with a prescribed layout) can have multiple executables. So something like:
So no individual executable's size should really be affected. One of the goals of this approach to software packaging is that, containing their dependencies, they are relocatable. Users can equally run ABStreet.app from their download directory or "install" it by dragging it to their system If each GUI app needed to use the update and cli executables, then this approach might mean copying the executables into multiple .apps. There probably a smarter way, but I don't know it off hand. But even if there's not, I'd expect the compressed download size to be only minimally affected from multiple copies of an identical executable. Whether it's a deal breaker if the on-disk installation size grows is a valid question. edited: for consistency and to fix a billion typos, sheesh 🙃 |
Ahh, thanks for clarifying. Repeating those two files for all the .apps doesn't seem that bad in a .zip. The bigger question is if all the apps can share the same data/{player,system} directories. Presumably that's possible, maybe with some permission approvals from the user's end. (I just accidentally blocked Terminal from accessing my Downloads folder... I like the stronger sandboxing in Mac, but the UX of sudden dialog boxes can be a bit jarring) |
Just noting that I disabled notarization temporarily in 6bf2f6b. The full error:
My apple account is tied to my UK phone number, which I currently don't have access to. I also don't currently have my Macbook on-hand. I can go through some alternate identity verification process that takes a few days, but I'll just wait till next week. 2FA fail! |
https://en.wikipedia.org/wiki/Package_(macOS)
The text was updated successfully, but these errors were encountered: