-
Notifications
You must be signed in to change notification settings - Fork 114
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
Fix macOS Catalina error when running the binary the first time #131
base: master
Are you sure you want to change the base?
Conversation
I'm not sure that it's required (but I dont have Catalina on any of my macs). From the documentation, it looks like this entitlement is only necessary when using the "Hardened Runtime" capability (which we dont rely on, since we dont notarise the app). For the old good non notarised way in 10.14+, we already have code handling the request of that access. https://github.com/Gargaj/Bonzomatic/blob/master/src/platform_osx/Misc.mm#L80 @tanis2000 can you try not to enable hardened runtime and build the oldschool way? |
Wouldn’t notorising the macOS app actually be a good idea anyway? |
It’s a quick automated process where an Apple server does a quick scan for malicious code |
I'm not sure GargaJ is willing to pay 100 euros per year to get an Apple developer certificate. Anyway, imho notarisation smells like a trap that brings 0 value. |
@alkama I understand your concerns, but it looks like Bonzomatic is already being distributed as a notarized app through a homebrew's cask. That's how I found out this issue. |
Not that I know. |
@alkama sorry, I was completely wrong. I thought I had it installed through a cask but no, the issue is with the latest release here on github, this one: https://github.com/Gargaj/Bonzomatic/releases/download/2019-03-26/Bonzomatic_MacOS_GLFW33.zip Is that release created automatically? |
First time I've heard of that. Gotta love opensource. |
@tanis2000 Yes, I compiled that one. |
@alkama ok I get it. But would it make sense to keep those entitlements? I mean, they do no harm and they do not enable hardened mode by themselves.
We don't need all those, but the audio-input, get-task-allow and allow-unsigned-executable-memory look like good candidates. |
I dont mind an added file that is unused/at rest. Apart from the fact that it's useless. The audio capability should work on Catalina since it's requested at runtime, and the one you list is only there for hardened runtime usage. But the thing to investigate first is to know if the use of My uninformed bet is that it goes hand in hand with |
I don’t see harm in releasing both a notorised and non notorised binary to give people the option. And one of the Bonzomatic contributors with an Apple dev cert can be responsible for providing a notorised version shortly after each non notorised version is released. Id he happy to do it for example. I will be renewing my Apple dev certificate indefinitely since I have iOS apps in the AppStore and so is one of my sources on income |
My take would more be to keep this PR handy for the day Apple forces all apps to be notarised. @sacredbanana i wouldn't call any signing process quick and automated. Especially when it's asynchronous and has important results containing future deprecation messages that are meant to be analysed by a human being. But maybe it's just me :D |
@sacredbanana Can you assure that doing so would not result in non-notarised version being instantly flagged as malware, today, and in the future? |
Pretty sure Apple wouldn’t flag something as malware for being a non notorised version because that would be straight up lying |
@alkama the good news is that |
@sacredbanana Well, you're SIGNING, so somehow you're establishing an official channel. They could decide that if an app is notarised it means it can be, so all versions should be too. At minimum it means all devs would then need a developer ID, worst case it makes all other version suspicious by default. So the question is funnier: "Once you join that process, do you know or have clear informations about what Apple will demand in the future, because from now on you're bound and could very well be binding everybody else along". So a better question would be: Why is it desirable, does it bring value (or enough value to cover for the present and worst case future cost). |
@tanis2000 question is more to know if the presence of such "CODE_SIGN_ENTITLEMENTS" in the build settings in XCode, upon first opening of the project, makes it default to having signing enabled. Which would then require a readme step to uncheck that for the people that dont have a dev certificate and build a release version (and might require us to change some CI setup to unselect that). |
I’ve never made a macOS app (only iOS experience) so correct me if I’m wrong with my following statement. Surely you can make the notorised app have a different bundle identifier from the non notorised one to make the apps appear as different apps |
Well I added features to bonzo for Mac but didn’t pay attention to the build settings |
The bundle identifier of Bonzomatic is the the project name, so Bonzomatic. |
Perhaps cmake could spit out both versions each in their own “notorised” and “non notorised”folders making it straight up impossible for the person responsible for notorising to be too negligent and uploading the wrong binary to Apple |
Frankly, this all is recipe for future catastrophy. |
I don’t mind either way at this point. Just as long as macOS keeps allowing you to run non notorised binaries. Let’s see how long until Apple says actually nope |
Well, the day they enforce it, we can probably make Bonzomatic a command-line tool :D |
There’s nothing stopping a Mac user running Bonzomatic in bootcamp windows or even in a Linux VM in Parallels anyway |
I agree, we should deprecate the OSX version. |
@Gargaj I hope you’re kidding. Running any application in Parallels isn’t anywhere close to running it natively, especially for gfx apps ;) |
I've added macOS entitlements to avoid the application being blocked by Catalina when you run it the first time.