6 ms·
Apple rejected my dictation app for using the accessibility API
- oblio 4mo agoI guess this app can still be installed locally? It's just that it can't be distributed to others due to signing requirements? Edit: Ah, it's in the article, this is about AppStore distribution. Walled gardens are going to walled garden.
- RZelaya 4mo agoThe direct version is fully signed and notarized by Apple, just not distributed through the App Store. Anyone can install it from mitmllc.com/whisperpad without workarounds. The 2.4.5 rejection was an App Store rule, not a general restriction on the app.
- -mlv 4mo agoNo surprises here, Google has also been restricting access to its accessibility API.
- RZelaya 4mo agoUseful context, thanks. I hadn't realized Google was tightening similarly. Would be interesting to see how the rationales compare.
- Muhammad523 4mo agoThis is what happens when you run an OS controlled by some random big corporation. I dont mean that it's the person's fault, but just that you should not rely on Apple. they allow you to use your computer, but on their terms. Install some GNU/Linux distro and you can do whatever you want.
- functionmouse 4mo agofor most people this is like saying "If you don't like being oppressed, just move to Antarctica!"
- amelius 4mo ago[dead]
- callc 4mo agoMaybe more like “Learn how to replace an AC filter by yourself instead of calling an AC repair company” I just installed PopOS on a laptop recently, and… it just worked. There’s an app store for noobs that I think installs flatpaks. GPU drivers just work. Whole disk encryption. Everything just works. I don’t see what else my grandma that just uses Facebook would need. Maybe automatic updates?
- functionmouse 4mo agoNo. Changing one's primary operating system takes time, dedication, and is a lifestyle change, similar to moving somewhere remote. Changing ones AC filter is none of those things. If you and your grandma only rely on the computer for its web browser, then good for you. You have flexibility that is not afforded to most people. But that's not how a person's phone works; phones dig a lot deeper into one's lifestyle, intentionally so. The walled garden was constructed to keep outsiders out, but now it seems the primary purpose is keeping those inside hostage.
- MichaelZuo 4mo agoYou make people sound like they are semi-automatons?
- Muhammad523 4mo agoIf a 15 years old can do so (me) then other people can do so as well. I did not feel uncomfortable at all when i first installed ElementaryOS and then moved to Fedora. everything just works, i never ever had to worry about drivers or stuff like that
- RZelaya 4mo agoFair. I run Nobara on my gaming computer and built a similar dictation tool there with no API restrictions, so the trade-off is real. For this project I chose both: App Store reach for the compliant version, direct distribution for the full one. But I know other people wouldnt be comfortable with running something like that so I built this somewhere my mom could use it
- detourdog 4mo agoApple is hardly a random big company. Apple's customers specifically chose to purchase the product. Most of their customers don't realize the significance of the exposure to copy and paste between Apps. Apple has taken the position that monitoring this exposure is part of their duty to the customer. Anyone that is aware of this shortcoming in Apple's product is free to purchase a different device.
- deleted 4mo ago[deleted]
- coldtea 4mo ago>This is what happens when you run an OS controlled by some random big corporation You get a channel for installing apps, where someone vetoes random apps that want to have access to control your whole computer and potentially steal sensitive data? >Install some GNU/Linux distro and you can do whatever you want. And any random app can get total control and steal your data, unless you know how to enable restrictions. I'd rather have restrictions as the default, and for the most naive users who'd follow every app prompt, and then cry about their lost work/private documents/money, no way to bypass them.
- Muhammad523 4mo agoIt's not true that any app can get total control of your system. If you install them via flatpak, the apps are sandboxed. Also, unless you log in as root, the apps can't do much. Wonder why the most important systems in the world and big tech's servers run GNU/Linux? There's a reason I dont wanna start a war over this btw, even though it may not seem :)
- SSLy 4mo ago> unless you log in as root, the apps can't do much. https://xkcd.com/1200/ https://xkcd.com/1200/
- coldtea 4mo ago>Also, unless you log in as root, the apps can't do much. On a personal computer, they "can't do much" to the things you can trivially re-create by reinstalling anyway. Apps, system files, etc. They can however do everything to your own files, steal your documents, bank account data, and more. That a progran run as you without root "can't do much" made sense for multi-user Unix services, not for a personal computer and your own files. >Wonder why the most important systems in the world and big tech's servers run GNU/Linux? There's a reason Yes, and it's not because "unless you log in as root, the apps can't do much" on your personal laptop.
- realusername 4mo ago> I'd rather have restrictions as the default Then don't install apps and use the web, mobile sandboxing is much weaker compared to any modern browser.
- lapcat 4mo agoYou're missing the point: it isn't about the OS. The direct distribution version of the app has full functionality. The problem is with the Mac App Store.
- mft_ 4mo agoUnless... you have a personal or professional need to use apps that don't work on Linux. I tried very hard to switch to Linux full time some months ago, but I couldn't find a way of getting Microsoft Office to work satisfactorily. There are clever packaged versions of Outlook and Teams, but I need full native installed versions of Word/Excel/Powerpoint, and there just wasn't a good solution. That was a deal breaker, sadly, so I'm back on Mac for the time being. Other examples would be some of the popular games with anti-cheat that requires Windows.
- vanyle 4mo agoCentralized package repositories like the one provided by canonical have similar limitations to the Mac App Store, you need to get your app reviewed, you need to push updates to each platform where you distribute your app and in exchange you get visibility. I'd argue that installing and updating apps on MacOS is simpler than on Linux distros because most apps have built-in auto-updates (or you can just drag the app to the applications folder) instead of having to rely on snap / apt / insert your package manager which may a lot of outdated and unmaintained packages and apps.
- DelightOne 4mo agoI don't want random apps to paste potentially dangerous things into other apps. Its understandable. Imagine a banking app, and for example an IBAN field.
- notlive 4mo agoI would like the option to allow the behaviour selectively
- DelightOne 4mo agoThat's what install outside of the App Store is for. On your own risk-
- kuboble 4mo agoThem you are free to not install them? Why ban them outright? I'm using https://github.com/cjpais/Handy https://github.com/cjpais/Handy whichseems to be doing exactly what this app does, and has a very similar background story (author couldn't type die to injury).
- amazingamazing 4mo agoTo their defense you cannot rollback apps, so if you did install and only an update had this function, you are out of luck
- applfanboysbgon 4mo ago"In their defense, the OS is even more insane with mandatory forced application updates that you have no control of". I hope I won't ever happen to have you representing me as a defense attourney!
- mrweasel 4mo agoIn this case it feels like it's a feature that the operating system should be providing or something that could be marked as an accessibility tool, which would allow it to use that API. The problem from Apples perspective could be that there is a ton of tools that require access to the accessibility API because they want to do stuff that Apple have deemed a security risk and the only way to do it is by abusing the API. Some of these are also because macOS simply lacks certain APIs. I think Apple overreacting due to previous API misuse by other apps.
- cumshitpiss 4mo ago[dead]
- RZelaya 4mo agoI am still not certain I understand exactly what Apple's reviewer meant by 2.4.5 in my case. My working assumption is that the concern is about an app reaching into every other app on the system to inject text, but I never got a perfectly clear explanation. (Or maybe I'm too dense to understand it.) If anyone here has more direct experience with this guideline, especially from the App Store review side, I would like to hear it. I would rather understand the policy than just guess at it.
- saurav3000 4mo ago[flagged]
- deleted 4mo ago[deleted]
- spiral90210 4mo agoSpaceGremlin (mac alternative to WinDirStat) has a similar thing, where some features only work in the independent "SpaceGremlinPro" version downloaded from their site. However, they do some cool stuff with licensing - you can point it to the app store paid/installed version, and it detects the license and unlocks. If you're worried about people not trusting payment to you, might be worth seeing if you could implement this, so anyone who bought on the app store can still access the full feature set. Cuts you out 30% like, but better than nothing maybe.
- deleted 4mo ago[deleted]
- esperent 4mo agoSounds like something that would instantly get you banned from the app store if it got noticed.
- lapcat 4mo agoNo, it isn't. A number of developers have done this.
- ryandrake 4mo agoGood thing Apple is well-known for consistently and fairly applying its own App Store rules across multiple, similar apps...
- lapcat 4mo agoYou're missing the point. We know that countless developers, including the author of the blog post, have received App Store rejections of submissions. On the other hand, to my knowledge, exactly zero developers have ever been banned from the App Store for doing what the commenter claimed would instantly get you banned.
- LoganDark 4mo agoSpace Gremlin isn't even available on the App Store anymore, presumably because it hasn't been updated to newer versions of macOS. Meanwhile, GrandPerspective is free and uses the exact same visualization as WinDirStat (although the UX is a bit weird for me)
- BoxFour 4mo ago[dead]
- dmcgill50 4mo agoIn Apple’s defense, your company name is MITM. Man In The Middle certainly falls on one side of the perception line, don’t you think?
- raverbashing 4mo agoRight?! I get that some people are unfairly targeted but some other times it's people being (extremely) naive or just playing dumb "Hey you know what would be cool? If we named our bluetooth speaker company bee oh emm bee!!11"
- RZelaya 4mo agoThe acronym is unfortunate, you're not wrong. MITM here is "Moogle In The Machine" (the Final Fantasy moogle + machine learning), but the security-context joke is fair and I hear it constantly.
- butlike 4mo agoMoogle itself might be copyrighted, too
- Gormo 4mo agoOf course, one might construe Apple as an MITM in the relationship between the user an and the software vendor.
- gumby271 4mo agoIn fact, Apple would construe themselves as a MITM, pretty explicitly.
- deleted 4mo ago[deleted]
- RZelaya 4mo agoThe paste-phase failures are exactly where most of my hard problems have been. App switching mid-paste, focus changes, slow-loading fields. It's an ongoing battle. Transcription history and custom prompts (especially for code or technical contexts) are good ideas I should think more about. The privacy trade-off on persistent transcripts is the part I've been chewing on.
- RZelaya 4mo ago[dead]
- BoggleOhYeah 4mo agoEh. I think it’s fair if Apple doesn’t want to publish something on their app store. I just wish they weren’t so obstinate about people installing from other sources without signing/notarization. I understand it from a security standpoint but it’s also nakedly self-serving. I’m glad that they’re fine with signing in this case.
- RZelaya 4mo agoFair points. The notarization-but-not-App-Store path was actually a workable middle ground in my case. Apple still gates security via notarization, but doesn't gatekeep the use case. The warnings users see when installing non-App-Store apps could be lighter without compromising security.
- robgough 4mo agoI recently built a similar app, and so hit the same limitations – I wasn't too upset on Mac, happy to distribute without the App Store (though it's a shame). Where I was more frustrated was how much this limited the potential usability of the iPhone app. Because of app store restrictions it is a far worse app ... though like in your example, still useful to a degree. I can only hope they use the new CEO as an opportunity to seriously re-evaluate their entire approach to how they work with developers, though I'm not actually expecting them to. If anything, with the increase in apps being created via AI tools I worry they will go the other way.
- RZelaya 4mo ago[dead]
- vrganj 4mo agoIf you're in the EU, consider publishing on an alternative App Store and pointing users that way. If you're not, ask your representatives why you don't get the same rights.
- cmsj 4mo agoI really do understand the desires people have for iOS to be a more open platform, but I'm just gonna say very clearly: I do not want third party apps being able to do what OP's app does. My iPhone is the one computing platform I have where I get the assurance that no third party app can be spying on anything else I do on the device.
- lapcat 4mo agoThe Accessibility permission is not granted automatically to apps on the Mac. You have to specifically allow it for an app. So you retain control and assurance even without Apple lockdown.
- __float 4mo agoiOS generally lets you reject any permission an app asks for. This would certainly be "risky" enough that iOS would require explicit user permission, and you would be able to say no. On top of that, the app is completely optional: if you aren't comfortable giving it those permissions, don't install it?
- Fokamul 4mo agoEasy, don't make apps for devices which are only leased to people. Make apps for device, which are 100% owned by people.
- hombre_fatal 4mo agoWhat API are you using? I have a sandboxed app on the Mac Store that synthesizes CGEvents to simulate arbitrary keyboard actions on behalf of the user. It needs accessibility permission, of course.
- jchigg2000 4mo agoWondering the same, there is some weirdness around the clipboard and CGEvents though. Are you avoiding the clipboard entirely in your implementation?
- RZelaya 4mo agoSame approach: CGEventPost with Accessibility permission. The wrinkle was that my App Store reviewer wasn't comfortable with how I was using AX permission for auto-paste, even though the mechanism is the same as other apps already in the store. The clipboard-only version of WhisperPad needs no AX permission and that's what got through. Interesting that your sandboxed app with similar mechanics is approved.
- hirako2000 4mo agoSome non apple apps get access to accessibility APIs. What gives? This API is sensitive. I imagine Apple is particularly stringent as to how the access is justified. Not how it uses it but how the reason for using it is explained. It's not like someone tests the app and all api calls to deem them reasonable or not.
- taormina 4mo agoThey do literally pay people to do that. Then one of those people chose to reject this anyway.
- artenesdev 4mo agoOof, thats rough. I'll still start facing those issues, just got accepted into the apple's dev program. I predict a ton of rejections coming my way.
- RZelaya 4mo ago[dead]
- jchigg2000 4mo agoQuick question, I assume you're getting caught by the CGEvent(PostEvent)...but I want to be sure. AX API has been gimped for over a decade so you'd have never made it into the app store that way. Just making certain, in case you have another path. It doesn't appear CGEvent is a universal approval anymore either though. Have fought similar demons lately, feel your pain.
- RZelaya 4mo agoThe direct version uses CGEventPost to synthesize the paste, which requires Accessibility permission. The App Store version writes to the clipboard only, so no AX permission needed and the user presses Cmd+V manually. The 2.4.5 rejection was specifically about the Accessibility permission use case. Your read sounds right that this path has been gimped for a long time.
- 2OEH8eoCRo0 4mo agoAdd it to the antitrust pile. Microsoft was almost broken up over not allowing third party programs to use certain APIs. Apple abuses their dominant position to suppress competition.
- orliesaurus 4mo agoAs someone who also experience pains in their hands after a couple of hours of typing... I started to use the great open source app called ghost-pepper [1] that i found on github and has been my daily driver (its like superwhisrp but oss/free and local) the maintainer is really nice and replies to DMs really quickly too. [1] https://github.com/matthartman/ghost-pepper https://github.com/matthartman/ghost-pepper
- emrehan 4mo agoAs someone that have tried a few of these apps, I really like this one. I dictated this one just now with ghost pepper. Thanks Matt and thanks orliesaurus for sharing it here!
- primaprashant 4mo agoI am big fan of VoiceInk which is also local and open-source. I also maintain this list of all the best open-source ones in this awesome-style GitHub repo. People looking for open-source dictation tools, hope you find something that works for you here: https://github.com/primaprashant/awesome-voice-typing https://github.com/primaprashant/awesome-voice-typing
- shevy-java 4mo agoThis is another reason why one shouldn't become dependent on those giant companies. Just as Microsoft recently stated, you'll have to pay for GitHub CoPilot soon on a token basis. Apple controls access to its software ecosystem too.
- m-s-y 4mo agomacOS already has a dictation feature that does this exact thing, albeit in real time. I use it extensively. OP’s description in the linked article doesn’t say much more than this, so what am I missing with this particular app?
- taormina 4mo ago[flagged]
- RZelaya 4mo agoApple's built-in dictation works for casual use, but in my own daily use the typo rate was high enough that I was constantly going back to fix things, which defeated the point (with a hand injury, those corrections cost me). WhisperPad uses Whisper models instead, doesn't cut off after 30-60 seconds like Apple's does, supports 99 languages offline, and pastes into any active field via hotkey. There's a 120-minute monthly free tier so you can see if it fits your use case. If Apple's built-in dictation handles what you need, that's a fair answer.
- jiehong 4mo agoApple's own dictation is quite limited, doesn't handle multiple languages very well, and many open source dictation models simply do better.
- lofaszvanitt 4mo agoTime to turn Linux into a platform where you can upload into a store whatever the fuck you want. And see these behemots burn.
- burnt-resistor 4mo agoAccessibility things should be more useful than to just narrow accessibility uses only. Wheelchair ramps help move heavy objects. The accessibility API makes it possible to introspect all of the keyboard shortcuts an app provides for another app to list them. Screw Apple and their persnickety, controlling myopia.
- MagicMoonlight 4mo agoA company called “MITM LLC” which hijacks pastes in other apps. I have no idea what they’re thinking. Insanity.
- BrtByte 4mo agoThe frustrating part is less that Apple has a boundary here, and more that the boundary seems opaque and inconsistently enforced
- geor9e 4mo agoIs this just an stealthy ad for another paid dictation app…
- nullbio 4mo agoDoesn't Wispr Flow do this though? How did they get past these limitations?
- sangeeth96 4mo agonot in the app store?
- RZelaya 4mo agoFrom what I understand Wispr Flow distributes directly from their website and doesn't ship through the Mac App Store, so they don't go through Apple's App Store review at all. They use the Accessibility API the same way the direct version of WhisperPad does. The 2.4.5 limitation really only kicks in if you want App Store presence.
- kevsim 4mo agoYeah and Soniox is another similar as well, but I checked and neither is available in the AppStore
- chuckadams 4mo agoThere's a reason I don't write mobile apps, and it's all the flaming hoops you have to jump through: both in the build system and from the random whims of reviewers.
- allthetime 4mo agoI’ve been doing it for a decade now. I have a list of everything I’ve been rejected for. New apps must satisfy the list before I put them up for first review. New apps pass first try now. Build system woes are almost always solved by deleting build cache & artifacts and trying again. Often necessary after messing around with deeper dependencies.
- atroon 4mo agoI don't mean to offend, but entrusting every input to a company literally called MITM LLC has a level of absurdity that either greatly entertains or else greatly frightens me.
- marvin-hansen 4mo agoI actually had the almost same situation by building an offline voice dictation app for macOS and iOS, and in macOS I was confronted with the exact same situation. However, I would like to point out that Apple isn't totally wrong here because the accessibility API unfortunately is way too broadly scoped, and because of that you literally get access to everything on the computer like you you can screenshot listen and and move the cursor... This is completely ridiculous and the proper engineering solution would actually be to phase out the accessibility API and replace it with something that is narrowly scoped so you can grant specific permissions individually. However, Apple, being Apple, is obviously not doing anything, and instead says no accessibility permission for anything that isn't demonstrable accessible. Now, there are obviously some exceptions because Apple is not particularly well known for applying its rule consistently and granting big exceptions for itself. However, they do have a valid point on privacy and data protection. And I say that as somebody who ended up distributing my MacOS app outside the App Store because I only got approval for iOS. That said, I would definitely appreciate if Apple would gradually improve its developer program experience, because compared to its hardware lineup, the developer program is nothing short of abysmal.
- RZelaya 4mo agoThanks for sharing this. The "phase out the broadly-scoped Accessibility API and replace with narrower permissions" point is exactly the right structural fix. Right now developers have to declare a permission far broader than they actually need, and from the outside the criteria for what counts as legitimate use isn't clearly defined. Interesting that your iOS app got through but macOS didn't. WhisperPad is Mac-only and I haven't gone through the iOS path, so your experience there is useful data. The "demonstrable accessibility" criterion seems to be where everything bottlenecks.
- deleted 4mo ago[deleted]
- deleted 4mo ago[deleted]
- Brian_K_White 4mo ago
- luca-ctx 4mo agoI’ve had lots of inconsistent app reviews from Apple. Just appeal and/or re-word your language and you’ll be ok. Plan on it taking a few weeks to fully sort out.
- stokedbits 4mo agoThis is well documented by them which is why a majority of the apps doing this are released outside of the App Store. I built something similar, and I just publish it separately https://github.com/moxiebytescode/speakeasy https://github.com/moxiebytescode/speakeasy.
- kobalsky 4mo agoAfter decades of heavily using the computer keyboard (every day, all day) I started getting pain in my wrists. I got an ortholinear keyboard that looks like a rectangular grid, just 12 by 4 keys around 10-15 years ago. I don't recall the last time I felt pain in my hands, completely gone.
- longnguyen 4mo agoIf you emulate command+V, make sure to check the keyboard layout. You may need to translate the keycode V for the current keyboard layout like DVORAK etc
- RZelaya 4mo agoGood catch. Easy edge case to miss if you only test on QWERTY. I'll double-check the implementation, thanks for the heads up. update: You're right, this is a real bug. The Direct version's auto-paste hardcodes the QWERTY keycode for V instead of translating for the active layout, so Dvorak / Colemak / AZERTY users would all hit it. The MAS version is unaffected (clipboard-only; the user presses their own Cmd+V, which is layout-correct). Fix is going into the next release. Thanks for the careful read.
- longnguyen 4mo agoGood luck. I’ve been building a native AI client[0] for the past 3 years and I didn’t catch this edge case until some of my users asked for it. [0]: https://boltai.com https://boltai.com
- RZelaya 4mo ago[dead]
- numron-dev 4mo agoI understand their point of view. I will launch an app on app mac too. I hope it do goes smoothly.
- MoonWalk 4mo agoCan't view the site. Rejected with net::ERR_CERT_AUTHORITY_INVALID
- RZelaya 4mo ago[dead]
- claviska 4mo agoThey rejected mine too for the exact same reason, despite press-to-talk being a legitimate accessibility issue. I wrote about this here [1], and even called out some of the most common disabilities that clearly benefit from it. They also don’t allow microphone access from keyboard extensions in iOS, which prevented me from shipping an iPhone target (that I really wanted for myself tbh). It’s a shame and I can only assume they’re trying to protect their built-in dictation, which historically has been laughably bad. [1] https://tonguetype.app/accessibility https://tonguetype.app/accessibility
- RZelaya 4mo ago[dead]
- PaulHoule 4mo agoIs it really true you get more distribution from the MacOS App Store? I would never use that App Store to install something unless I had absolutely no other choice —- and that would mean I would take somebody else’s app which was a little less polished or functional. We’ve had an App Store in Windows since Windows 8 and it has been a big joke, like maybe you use it to download some crapplet to use the scanner attached to your printer or something.
- RZelaya 4mo ago[flagged]
- mvdtnz 4mo agoI do not respect software developers that build for platforms which require them to beg and plead to have their programs accepted by a mega corp. Develop for open platforms or stop complaining.
- throwaway-blaze 4mo ago"The choice is rarely "comply or quit." It is often "comply here, and do the fuller thing somewhere else." Unless the platform is iOS, in which case it's "comply here or gtfo".
- RZelaya 4mo ago[flagged]
- zhangyiqian 4mo ago[flagged]
- saurav3000 4mo ago[flagged]
- 3vo-ai 4mo ago[flagged]
- RZelaya 4mo ago[dead]