Skip to content

[macOS] Use Drag to Install idiom in published DMG releases #4062

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

Open
nevack opened this issue Oct 31, 2022 · 16 comments · May be fixed by transmission/transmission-release-scripts#2
Open
Labels
scope:mac type:build Changes that affect the build system

Comments

@nevack
Copy link
Member

nevack commented Oct 31, 2022

It's very common for macOS apps to be packaged into DMGs that have:

  1. Custom background.
  2. Link/alias to /Applications.
  3. Icons aligned.
  4. Help text about "Drag to Install" the app.
  5. App itself.

Right now, transmission's DMGs only have 5, would be good to implement 1-4, at least 2 would suffice.

Examples: Screenshot 2022-11-01 at 01 20 54 Screenshot 2022-11-01 at 01 21 08 Screenshot 2022-11-01 at 01 21 29
@nevack
Copy link
Member Author

nevack commented Oct 31, 2022

@ckerr I need some info here about how transmission is built for releases published on Travis and website.
Is it xcodebuild? Maybe CMake/CPack?
Should it be implemented for both?
Thanks

@Coeur
Copy link
Collaborator

Coeur commented Nov 1, 2022

Having a wrapper just to tell you "please drag the app to /Applications" feels like an outdated practice to me.
For instance, when you download Xcode, it's not given to you as a .dmg file.

@Coeur Coeur added the scope:mac label Nov 1, 2022
@nevack
Copy link
Member Author

nevack commented Nov 1, 2022

Having a wrapper just to tell you "please drag the app to /Applications" feels like an outdated practice to me. For instance, when you download Xcode, it's not given to you as a .dmg file.

It's given in signed archive, which is not the same as DMG image.
How is this outdated?
Current approach literally requires to open another window to drag the app to.

@Coeur
Copy link
Collaborator

Coeur commented Nov 1, 2022

With a dmg, you have to delete it manually afterwards, no?
But fair, I'll compare with various products:

  • Xcode: .xip
  • Visual Studio Code: .zip
  • Firefox: .dmg
  • Chrome: .dmg
  • Gimp: .dmg
  • VLC: .dmg
  • IINA: .dmg
  • LibreOffice: .dmg
  • Keka: .dmg
  • WhatsApp: .dmg
  • Skype: .dmg

...oh well, I guess no one sends .app directly, you're right

@Coeur Coeur added the type:build Changes that affect the build system label Nov 1, 2022
@nevack
Copy link
Member Author

nevack commented Nov 1, 2022

With a dmg, you have to delete it manually afterwards, no?

Yes, but that means nothing.

We already distribute via DMG, I propose to make it nice.

@Coding4Coffee
Copy link

Coding4Coffee commented Nov 1, 2022

This is a good suggestion and definitely improves the install experience. See:

node-appdmg
create-dmg
dmgbuild

@Coeur
Copy link
Collaborator

Coeur commented Nov 1, 2022

@GaryElshaw
Copy link
Contributor

I have a copy of DMG Canvas if we can build a consensus on what it might look like :-)

#4995 (comment)

@sweetppro
Copy link
Collaborator

I’ve already submitted 2 seperate PRs which address this. Neither of which has been really considered :(

@GaryElshaw
Copy link
Contributor

:-( I saw the comment. There is no need to fork or integrate something that might be used - at most - probably quarterly. I like the mockup you made, by the way.

@nevack
Copy link
Member Author

nevack commented Feb 23, 2023

I have a copy of DMG Canvas if we can build a consensus on what it might look like :-)

#4995 (comment)

There're free tools, which can be used in our release pipeline.
I don't like the idea to create DMG manually with some paid tool as part of release process.

@rainyskye
Copy link

This is something that is kind of important to users which don't properly know what to do when downloading a new application, I've literally let people with multiple DMGs mounted and they ran them from there since they didn't know what to do with them.

@nevack
Copy link
Member Author

nevack commented Jan 31, 2024

@ckerr I need some info here about how transmission is built for releases published on Travis and website. Is it xcodebuild? Maybe CMake/CPack? Should it be implemented for both? Thanks

@ckerr I kindly ping you here, as I cannot proceed here without this info.

I understand why macOS app release process is not transparent, as it involves signing and notarizing with Apple.
Can we know at least how this app is built for distribution? :)

@Coeur
Copy link
Collaborator

Coeur commented Aug 19, 2024

With macOS 15 Sequoia, I would advise against .dmg distribution unless it's done with an official (paid?) Apple developer account.

Here is my experience with qBitorrent, which is downloaded from https://www.fosshub.com/qBittorrent.html :

  1. attempt to open qBittorrent-4.6.6.dmg.
  2. popup "Element « qBittorrent-4.6.6.dmg » not opened - Put in trash bin or close" > close
  3. open Settings > Confidentiality and Security > Scroll to the very bottom > click "Open anyway" next to « qBittorrent-4.6.6.dmg »
  4. drag & drop, and attempt to open it
  5. popup "Element « qBittorrent.app » not opened - Put in trash bin or close" > close
  6. open Settings > Confidentiality and Security > Scroll to the very bottom > click "Open anyway" next to « qBittorrent.app »
  7. finally you can open it

@nevack
Copy link
Member Author

nevack commented Aug 19, 2024

Here is my experience with qBitorrent, which is downloaded from fosshub.com/qBittorrent.html

Is it signed/notarized?

@Coeur
Copy link
Collaborator

Coeur commented Aug 19, 2024

Is it signed/notarized?

➜  ~ spctl -a -vvv -t install /Users/User/Downloads/qbittorrent-4.6.6.dmg  
/Users/User/Downloads/qbittorrent-4.6.6.dmg: rejected
origin=qbittorrent macos

So not properly signed with a developer account I would say.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
scope:mac type:build Changes that affect the build system
Development

Successfully merging a pull request may close this issue.

6 participants