An Alerting Vista of macOS Sonoma
furbo.org
furbo.org
I gather from the thread that my comment above seems presumptuous, condescending, and mansplainy. I do think I overstated my thoughts. I only meant to say, “It looks to me like just a beta thing. Let’s hope it goes away.” It didn’t seem like the original article expressed that consideration (though it may well could have—I just missed it at the time), so I thought it might be a thought worth adding. But I over-composed the comment, and I hit the wrong tone.
This doesn’t seem like an issue worth sorting people by level of authority or experience over. I suspect we all care a great deal about quality work and quality user experience. The OP is right that these dialogs suck, and you’re correct that Apple has released things that suck, and this might be one of those things.
What each of us do in our own work is also not at issue. I’m in solidarity with those below who feel attacked. We shouldn’t have to have our credentials ready for inspection in order to post a worthwhile comment.
In any case, for all we know and in all likelihood, the person who committed the change that enabled these notifications could be here in this thread. We don’t have to like the change, but I doubt the person who made it is any of the things they’re implicitly being accused of being.
However, if you’re not using Swift/Obj-C and have a different/custom build system, you’re probably toasted. Although, if you’re using CMake, you might have some luck in getting these info by generating an XCode project.
If so, the problem wouldn’t be “not using Swift/Objective-C” or “have a different/custom custom build system”, but having a binary in your build that calls a deprecated API that the build does not build from source.
That’s the case if you use a third party library you don’t have source code for, or if you use an in-house ‘library’ project (Xcode would warn you if you compiled that, but possibly not when you use it in another project, so you wouldn’t get a direct clue “rebuild that library to see the issues”).
I'm also a macOS developer - if I saw this I'd just turn on warnings in Xcode, wouldn't you?
The author seems to say something about using this red alert box to 'bisect' their app to figure out what's wrong? Really? Chances are if this is a deprecation issue, they may just get to the start of their app's history... There is plenty of tooling for this in Xcode and the build system. This is just a nag to remind people to use it.
Whether it's working right or not this is meant to nag on ATS and ATSUI which has been deprecated for 13 years.
Almost everyone has deprecation warnings enabled. They're enabled by default. I occasionally use #pragma clang diagnostic ignored "-Wdeprecated-declarations" for small sections of code, but you can easily search for those. Do you seriously think that Craig Hockenberry, longtime Mac and iOS developer, is so ignorant and dumb as to not understand deprecation warnings in Xcode? Apparently you do, but if so, you're grossly mistaken.
> The author seems to say something about using this red alert box to 'bisect' their app to figure out what's wrong?
Yes, I'd guess what he means is deleting code in the app until the alert disappears, which would be impossible if the alert appears only once.
> Whether it's working right or not this is meant to nag on ATS and ATSUI which has been deprecated for 13 years.
As saagarjha said, that’s not what it is. https://news.ycombinator.com/item?id=36659491
You really think that's a reasonable approach? Deleting parts of your app until it goes away?
I can't stress this enough this is not a developer tool, and it wouldn't be any more of a developer tool if it appeared every time.
> Do you seriously think that Craig Hockenberry, longtime Mac and iOS developer, is so ignorant and dumb as to not understand deprecation warnings in Xcode? Apparently you do, but if so, you're grossly mistaken.
Respectfully, I've been developing for macOS longer than you have, I started in 2002. Granted it was my first platform, and I wasn't exactly aged at the time. However, I make mistakes and come to silly conclusions all the time (as folks here are quick to point out), which is why I try to avoid appeals to authority whether for or against my position. My position should stand on its own merits.
People get mad about silly things all the time, I'm still mad about brushed metal and the unified toolbar.
Absolutely! It's an extremely common debugging technique when you have a mystery problem and need to determine the cause. You've never done that in 20 years of development?
Without tooling you have no idea where you would even start cutting.
But hey, it sounds like you've got an approach that works for you.
There is no "prescribed approach" here.
> except in the most ridiculous of situations.
This is a ridiculous situation.
> Pretty much just as a Hail Mary.
Of course it is. As I said, "when you have a mystery problem".
> Without tooling you have no idea where you would even start cutting.
I'm not sure what you mean by "Without tooling".
Well, I'd start with Xcode and static analysis. If that fails, Apple says this is triggered by ATS and ATSUI so I'd probably start with something like grep to see if I could track down a recursive dependency. [1] I wouldn't start deleting code at random from my codebase.
Given this is just a nuisance I'd then file a radar.
[1] https://medium.com/nuclei-technology-blog/how-to-check-your-...
That's what Apple says but unfortunately it's not entirely true: https://news.ycombinator.com/item?id=36660932
> Given this is just a nuisance I'd then file a radar.
They're called Feedbacks now, and if you read to the end of the blog post, you'd see that Hockenberry did indeed file some. But filing a bug report isn't any kind of solution to a problem. Apple only fixes a small subset of all bug reports.
> They're called Feedbacks now.
Yeah, I'm not going to stop calling them radars lol.
Which is exactly the point of the submitted blog post: Apple needs to change this. But here in the commentary we have people talking down to the author and others, suggesting they're somehow ignorant and "not using the tools".
> You really think that's a reasonable approach? Deleting parts of your app until it goes away?
When you send a feedback to Apple, they almost always ask for a minimal test case (Xcode project).
If you can guess what the problem is, you can just create a new Xcode project from scratch that triggers the error.
But often, when you do that, the new project doesn't fail in the same way your app does. Then you have to start with your app, and keep removing stuff until only the stuff that triggers the problem is left.
Read the message box copy, it’s consumer facing copy.
Developer facing message box wouldn’t be warning me about another developers deprecated api and telling me to contact them.
At one point, after rebooting my computer - a required step in the 10-minute process of updating the firmware for my fresh out of the box Apple monitor - I got a dialog that said "The application 1Password is not open anymore" (exactly like https://us.v-cdn.net/5020219/uploads/editor/w1/apqiiyi6lwer....). Clicking the help button opened the classic Apple help panel that grinds your computer to a halt and, in this case, displayed a blank white window. I spent a few seconds trying to puzzle this one out, ending on an Apple discussion forum (https://discussions.apple.com/thread/252590137) with the again-classic mode for those forums where derision and insults are provided in lieu of assistance.
I fell in love with the "it just works" and "an actually usable GUI plus Unix under the hood" and "they actually sweat the small stuff" aspects of the Mac experience that drew a lot of us to the platform in the early days of OS X. Over time, the shine has worn off and many patches have tarnished or even rusted through. The user-annoyance-factor difference between modern Windows and macOS is very slight.
I grant you, this experience sucks.
Was it better before, when everything had carte blanche to do what it liked without your knowledge/consent? (My intent isn't to lead the witness — I have my preference, but am curious what you think.)
> Was it better before, when everything had carte blanche to do what it liked without your knowledge/consent?
Yes.
The caveat is I'm using a very stable set of programs, that I spent a long time to decide if I was OK with giving access to a lot of my critical information. I'm using Karabiner since it exists, and it's a worse experience and performance as it is now than when it was running unprotected and full carte blanche. Same with Bitwarden, it already has all my life's passwords, giving it access to read my screen is just an additional annoyance.
At some point VSCode could also go rogue, but I'll be more worried with it leaking my SSH keys than recording my face when I'm coding.
(We did this to ourselves, by constantly trying to make computers easier to use, and telling everyone else they should have one)
> (We did this to ourselves, by constantly trying to make computers easier to use, and telling everyone else they should have one)
Agreed. However: most people never wanted a computer, they only wanted to do certain computer-y things.
And they don't have to anymore! We now have this new breed of wondrous, computer-y devices which are less capable, but in return are also a lot easier to use. It's here, it's absolutely ubiquitous and it is roughly good enough most of the time.
The worlds of "smart" devices and general computing machines could have, _should_ have coexisted perfectly next to each other. That Apple is slowly but surely merging the two is a massive, unnecessary, foolhardy mistake that is on them and them alone.
Enterprise "businessy" people already have fully managed enterprise Windows, large education fleets and low computing needs organizations can be served by Chromebooks or iPads.
We're the ones stuck in a state where linux is still too compromised, Windows lacks polish, and now macos has iOS-ified to the point it becomes an hinderance but without getting the real advantages (touch support etc.).
I'm patientely waiting for a shift to happen, in the meantime jumping to Windows looks like the more pragmatic solution, how crazy it may sound.
Sure you can disable many security stuff in macOS but then many of the apple stuff don't work, so you would need to leave on the table one major reason to buy Apple hardware.
In my opinion Apple painted itself in a corner with their strategy, they may have more money than ever and more customer than ever but they are making their offering so irrelevant to tech enthusiast people so quickly I'm not sure any of their tech will be relevant in ten years.
Of course Apple fanboys (omnipresent here) want to believe the contrary...
While you're absolutely correct it's my impression that most people will grant any permission without reading just to make this popup interruption go away and move on with their task.
spctl --master-disable
csrutil disable
nvram boot-args="amfi_get_out_of_my_way=1"
and reboot into normal mode. Almost all of the "annoying" safety protections will be disabled.Could not have said it better myself.
You’re still wearing the rose-tinted glasses. MacOS is not able to (natively): 1. Allow the trackpad to scroll “natively” and a mouse to “normal” scroll. 2. Scale for an external display without a specific PPI. The PPI is so high there’s only a couple monitors that support it on the market. 3. Display crisp text on a non-high-PPI screen (as above). 4. Allow the user to edit or remove the horrendous mouse acceleration curve. 5. Allow users to select minimized windows with Alt+Tab. 6. Allow users to snap windows. 7. Etc etc.
I’m stunned I can’t scale stuff on my 4k monitor, adjust the mouse, or be productive with alt-tab.
Gorgeous hardware, but wow, I’m stunned you guys (and girls) can use this seriously.
I’m not saying you’re wrong for wanting them. I’m saying you’re wrong to assume that everyone else does, too.
Be happy they still let you use non-Apple external monitors! :)
4k monitors also scale fine?
Minimizing a window in macOS takes it out of the working set. You can't quick switch to a minimized window, and it doesn't even show on Mission Control. You have to click the minimized window in the dock to bring it back. In short, minimizing a window is not just a visibility setting, but a workflow choice.
It's actionable now. You can use an app without allowing the permission request, and the permission request is tied to when you try to use the function rather than at install time or app boot.
You can ctrl+right click and then press Open to bypass this and just show a warning with an "Open" button on it, fyi. After you do it once, it won't bug you for the same application.
This is not MacOS's problem. This is an industry-wide problem where users are besieged by rude software that treats the user like an idiot and decides to do as it pleases regarding system configuration. It is not an exaggeration that it is a security nightmare. With dark patterns becoming the norm, I am happy to have MacOS limit which programs can access which resource, even if it means setup takes longer.
The world you wistfully pine for, with well behaved software and operating systems that simply serve as a platform for programs, no longer exists.
Apple has a history of deprecating APIs, and then not shipping a suitable replacement, or shipping a broken replacement.
For example, the SecKeychainSetUserInteractionAllowed function, which disables password prompts when trying to fetch passwords from the keychain, has been deprecated for a few years. So I replaced it with the new method to disable UI. But the new method stopped working suddenly after a minor update! It just showed the UI anyway! This led to a bug where my app kept showing the dialog again and again.
The only fix was to revert back to the deprecated API, which still seems to work.
If Apple wants developers to stop using "deprecated" APIs, they need to start shipping replacement APIs that actually work.
I imagine there’s a MacOS developer somewhere with a test harness on their local machine, it has a bunch of app stubs with names like “ThisAppShouldAlert” and “ThisAppShouldNotAlert”, and their new deprecation-detection method that they’ve been working on starts with “if DEBUG == 1”. (Maybe this developer is right now in a meeting with management, getting a grilling for using the DEBUG flag instead of the INTERNAL_DEBUG flag.)
Then Apple and their (power)users don't understand why big software company don't want to go through the trouble or porting to macOS their very large software. It's not just about market share...
Some popups were even for system services (a long no-space process with "blastdoor" in the name for iMessage, etc).
Adding another domain to my “news” block list.
Your sneering is incredibly misguided and ignorant.
The ignorant one here is you, and now you're doubling down on it, sadly.
Lots of "Deprecated API" messages from what appears to be kernel code.
I always thought these messages were an internal Apple QA thing: one team notifying another of the need to tweak something.
But alerts like the ones discussed in the article and the discussion here are terrible. Non-actionable messages should be invisible to the user. There's no point.
The big risk is that some rogue app silently steals your data. If there is no dialog, nobody would realize.
If there is a dialog, the chance is higher that people will realise that the app steals your data, and write blog posts and articles about it, making it known that some app steals your data.
I for one am very happy about eg. clipboard notifications in iOS. I don't want random utility apps logging my clipboard, and without notifications I would have no way to know about them.
This also includes your battery is less than 10%
And then there's MacOS, where I can never be sure where to go to find these same notifications.
The whole issue of user dialog on MacOS and iOS needs a serious review. Jobs' would never have let this mess happen under his watch ..
Really unsettling to me that something running fine all working good I upload it to my web space and download it again and now launching the app says “this app is damaged, contact the developer” and the only option is “move to bin” or cancel.
Now I understand the gatekeeper system well enough at least I thought I did that I was expecting to have to right click open which is pretty standard in Mac land now. But it took me some digging that this “broken” message is just about signing nothing else, the app isn’t broken at all it’s just not been signed.
I understand the reasons gatekeeper exists and I agree with them mostly but changing this messaging from “unidentified developer” to “broken” feels like an aggression against being able to build software without paying the $99 toll gate.
I eventually found a way around it after 3 hours to get the old style “unidentified developer” message without paying Apple. But there was so little info around in half considering making a tutorial explaining it.
But yeah my point mostly is Apple trying to force the hands of developers by escalating warning messages is very worrying to me. None of this was needed from OS X 10.0 to 10.10 not sure why the aggression is needed now, because the Mac App Store is a failure you need to force the hands?
The fact something weird happened on a private beta is not at all surprising.
They did the same thing with unsigned apps (the confirm dialog mentions malware).
You have to sign it with a self made signature to upgrade from “broken” to “might be malware”
No worries, I am pretty sure what it is. It is an error code to notify the user (or more likely a developer testing their software with the beta for the updated OS, as that is who/what the beta is intended for) that there is still a deprecated API used. Apple used the following slogan in the updated notes: "Update your apps to use new features, and test your apps against API changes."
This was introduced in MacOS 14 beta 3: "Starting macOS 14 Sonoma, whenever the OS detects the usage of ATS or ATSUI APIs, the user will be presented a dialog stating that the application needs to be updated. Once the dialog is dismissed by the user, the application will exit. (100521621)" - https://developer.apple.com/documentation/macos-release-note...