Hi,
I develop a Mac application, initially on Catalina/Xcode12, but I recently upgrade to Monterey/Xcode13. I'm about to publish a new version: on Monterey all works as expected, but when I try the app on Sequoia, as a last step before uploading to the App Store, I encountered some weird security issues:
The main symptom is that it's no longer possible to save any file from the app using the Save panel, although the User Select File entitlement is set to Read/Write.
I've tried reinstalling different versions of the app, including the most recent downloaded from TestFlight. But, whatever the version, any try to save using the panel (e.g. on the desktop) results in a warning telling that I don't have authorization to record the file to that folder.
Moreover, when I type spctl -a -t exec -v /Applications/***.app
in the terminal, it returns rejected, even when the application has been installed by TestFlight.
An EtreCheck report tells that my app is not signed, while codesign -dv /Applications/***.app
returns a valid signature. I'm lost...
It suspect a Gate Keeper problem, but I cannot found any info on the web about how this system could be reset. I tried sudo spctl --reset-default
, but it returns This operation is no longer supported...
I wonder if these symptoms depend on how the app is archived and could be propagated to my final users, or just related to a corrupted install of Sequoia on my local machine. My feeling is that a signature problem should have been detected by the archive validation, but how could we be sure?
Any idea would be greatly appreciated, thanks!
An EtreCheck report tells that my app is not signed, while codesign -dv /Applications/***.app returns a valid signature. I'm lost...
EtreCheck isn't designed to be used with developer builds of apps. It only considers Developer ID and App Store builds as valid.
You should consider spctl the authoritative result. Years ago, I used to use codesign more and I would test a Developer ID build with "codesign -vv -R="anchor apple generic" /path/to/app".
However, you also mentioned TestFlight. I've never used TestFlight, but isn't that an App Store thing? So are you doing developer-signed builds? EtreCheck has no idea about that.
Never attempt to disable Gatekeeper on your developer machine. That would be a bad idea. Thankfully, Apple recently added an extra hoop to jump through that saved you.
I'm sure your Sequoia install is fine. It's the app that's corrupt. I was confused at first when you were talking about Monterey and App Store. You need at least Ventura/Xcode 15 for App Store submissions. I guess you are using Sequoia only to submit? I think you're just hitting some odd edge case on Monterey.
My recommendation is to build and debug on the oldest supported configuration. As of right now, that's Ventura/Xcode 15, but that could change any day now. Then test on any other supported OS versions, heavily favouring Sequoia and Sonoma.
There is one developer feature in EtreCheck. Look at EtreCheck's "Operating System Adoption over Time" page in "Insights". Sequoia is 66% of installations. Monterey is still holding on at 9.1%. Anything before Monterey is a waste of your time unless you have a very specific user base.
If you post more details about your app, then maybe someone could see what's wrong with it. Maybe disable any DRM and build a notarized Developer ID version and fully test that in a VM. Make sure to actually download it from somewhere so you get the correct quarantine flags.