[HN Gopher] Distributing Mac apps outside the App Store, a quick...
___________________________________________________________________
Distributing Mac apps outside the App Store, a quick start guide
Author : tosh
Score : 289 points
Date : 2021-01-13 02:28 UTC (20 hours ago)
(HTM) web link (rambo.codes)
(TXT) w3m dump (rambo.codes)
| mesh wrote:
| I dont mind Apple putting more restrictions around signing, but
| they make it SO onerous for Desktop users to explicitly allow
| unsigned apps.
|
| Tell me its unsigned and the dangers, but then give me the option
| to run it. Stop treating me like some dolt.
|
| Right now, you have to really jump through hoops:
|
| https://github.com/mikechambers/dcli/wiki/Running-dcli-tools...
|
| (this is for a open source project I run)
| JosephRedfern wrote:
| Sometimes, rather than giving me a "friendly" warning that the
| app is unsigned, I get and exception with a stack trace, with:
| Termination Reason: Namespace CODESIGNING, Code 0x1
|
| I can (re)sign the application with: codesign
| --force --deep --sign - /path/to/The.app
|
| which often resolves the issue.
|
| but what's the difference between the error that causes the
| friendly warning, and the error that cases the stack
| trace/exception? Is this the difference between a lack of code
| signature and a failed check?
| fartcannon wrote:
| The point isn't to imply you're a dolt, but to slowly convince
| you to use the App store for the percentage they make.
| millstone wrote:
| Completely agree, especially because a signing key is $100 a
| year. Feels like the church selling indulgences.
|
| That said, it's not quite as bad as your link. The secret is to
| right click or control click on the app, and choose Open. The
| warning dialog will have an Open button to bypass the Security
| pref pane. (Though maybe that doesn't work for you since you're
| making a CLI tool?)
| ziaddotcom wrote:
| I disagree, I don't really want the signing key to be $0.99
| and someone just making 100+ developer accounts that can't be
| tracked with some leaked list of SSNs or similar. That would
| negate the whole point of the signing key for the end user
| almost entirely.
| lapcatsoftware wrote:
| The $100 fee is no barrier at all to professional
| criminals. Whereas it's a huge barrier for open source
| developers.
| ziaddotcom wrote:
| Maybe a fee waiver for oss with certain licenses and dev
| accounts for .edu addresses with a couple other ID
| requirements would be a good start.
| _underfl0w_ wrote:
| What you're seeking is proper _identity verification_ , not
| necessarily a tariff or upfront cost to even do business.
| ziaddotcom wrote:
| Is proper identify verification something that Apple can
| do at a marginal cost significantly lower than $100?
|
| I agree that the $100 fee in no way guarantees proper
| identity verification has been done. I also see plenty of
| other unnecessary barriers the fee creates, I just don't
| know what an obvious alternative would be.
| cute_boi wrote:
| $100 per year for distributing opensource app is way too
| much. $100 may be low in your country but its half salary
| for month in our country.
| ogre_codes wrote:
| I'm not sure why, but I don't see many of these prompts myself.
| You can disable Gatekeeper. sudo spctl
| --master-disable
|
| That should get rid of the prompts.
| asiando wrote:
| I'd rather not. After the initial setup I don't see that many
| annoying prompts either, I'd rather not disable security
| measures when they're really not that painful.
| ogre_codes wrote:
| I don't have it disabled myself. But if it's a burden, the
| option is there.
| vbezhenar wrote:
| It used to be option+click, then "Open". They removed that
| approach?
| zapzupnz wrote:
| That still works.
| novok wrote:
| you need to open twice, first time will never show it.
| [deleted]
| GeekyBear wrote:
| > they make it SO onerous for Desktop users to explicitly allow
| unsigned apps
|
| Not really onerous. However, you do have to use a terminal
| command to turn off Gatekeeper.
|
| https://www.imore.com/how-open-apps-anywhere-macos-catalina-...
| webmobdev wrote:
| He means from the perspective of an app developer - it is
| hard to educate users when Apple's deliberate UI scares the
| user. Asking some some of them to disable Gatekeeper can also
| backfire with ignorant users, because it is a security
| measure against malware spread and execution (once malware is
| identified).
| GeekyBear wrote:
| From the app developer's perspective, you can hardly spin a
| terminal command as any more onerous than a registry edit
| on Windows.
|
| Windows 10 SmartScreen is just as deliberate and just as
| scary.
| shawnz wrote:
| You don't need to pay anything or sign up for any app
| store to be approved by SmartScreen, and even if you are
| not approved there is a "Run anyway" button right there
| in the dialog.
| GeekyBear wrote:
| You absolutely have to pay for an extended validation
| code signing certificate for Windows 10 Smartscreen to
| allow your installer to run.
| shawnz wrote:
| That's not true. Binaries can acquire a positive
| reputation by being commonly downloaded. However paying
| for an EV certificate (or getting windows logo
| certification) is the only way to bypass the warning with
| no reputation.
| GeekyBear wrote:
| What new developer already has a reputation score?
|
| You absolutely have to pay for an extended validation
| code signing certificate, or your installer will be
| blocked by default.
|
| Third parties charge more for that code signing
| certificate than Apple does for a developer account.
| shawnz wrote:
| No new developer already has a reputation score. Why
| should they? Is there something unfair about warning
| users that uncommonly downloaded software is more likely
| to contain malware?
|
| If anything, the problem is that even software with an EV
| certificate should be subject to the warning (like how
| SmartScreen worked in the past).
| GeekyBear wrote:
| The entire point of Gatekeeper and SmartScreen is to only
| warn users about unsigned software that could install a
| trojan horse.
|
| If you check to see if the developer's signing
| certificate has been revoked before running their
| software, you can be reasonably sure that doing so is
| safe.
|
| Apple's developer program is cheaper than the extended
| validation code signing certificate you need to develop
| and sign software use on Windows without running into a
| block from SmartScreen.
| shawnz wrote:
| No, that might be the point of Gatekeeper but the point
| of SmartScreen is to warn you when you are running
| uncommonly downloaded software. You might be right that
| it is cheaper to buy a guaranteed exception for
| Gatekeeper than it is to buy a guaranteed exception for
| SmartScreen though, but I don't think that is relevant
| when you don't really need an exception for SmartScreen
| at all.
| GeekyBear wrote:
| No, stopping uncommonly downloaded software from running
| is Microsoft's way to force new developers to use their
| app store, since software distributed from there is
| exempt from that limitation.
|
| Apple's developer program is not only cheaper, it allows
| for functional code signing that completely sidesteps
| their app store.
| JosephRedfern wrote:
| "Everyday" users shouldn't have to edit the registry in
| order to install an app, either. Being no worse than
| Windows doesn't make it good.
| [deleted]
| [deleted]
| shawnz wrote:
| Turning off gatekeeper disables the protections for _all_
| apps, not a specific app of the user 's choosing. That is not
| what the other poster was asking for
| sthnblllII wrote:
| If Apple has to sign your app for it to run, then the Mac is no
| longer hackable.
| GeekyBear wrote:
| So Windows 10 isn't hackable now that Windows SmartScreen hides
| the option to run unsigned software installers?
| Wowfunhappy wrote:
| But they don't. Go into the Terminal and type sudo spctl
| --master-disable (I have that command memorized!) and you can
| run all the unsigned code you want.
| gh123man wrote:
| How do you define hackable? Also it is trivial to run unsigned
| code on a mac.
|
| Signed binaries are a totally reasonable security feature for
| computers sold to people that will install anything. Having a
| reasonable (hard enough to find) workaround is totally
| acceptable in my book.
|
| I also believe you can trust a self signed codesigning
| certificate if you want a more permanent solution (citation
| needed)
| jrumbut wrote:
| I think part of why the signed apps system feels onerous to
| me is that I can't really trust it for the things that matter
| most.
|
| Even if I'm assuming no exploits, everything working as
| intended, the permissions don't map well to what I care
| about.
|
| I don't really care which app has access to the camera, I
| care about what gets done with the recording (or even
| metadata/inferences from the images) or about it taking
| pictures at surprising times. Some fitness tracker needs a
| lot of data, which is fine as long as they aren't selling it
| to third parties.
|
| I would love the feature if it was something I could rely on,
| with audits of the client code, backend infrastructure,
| transparency in regards to data use, etc. As is installing
| software is still caveat emptor.
| Wowfunhappy wrote:
| I totally agree with you, but it's worth noting that what
| you're describing is TCC (permissions for camera, accessing
| certain folders, etc), which is somewhat orthogonal to code
| signing. It's also much harder (practically impossible in
| many cases) to actually disable than Gatekeeper if you
| don't like it.
| samatman wrote:
| Capabilities are a technical problem with a technical
| solution. As in: an app can't use the microphone or access
| the Downloads folder without getting permission from the
| user, by design.
|
| What you're after is a sociopolitical problem, and would
| take a sociopolitical solution. It simply can't be
| implemented in software, and it can't be implemented
| correctly in all cases, period: even if the app designer is
| a perfect angel, and only does exactly what they've pledged
| to with your data, the company could be bought by Evil
| Corp, or get hacked.
| rubyist5eva wrote:
| Not everyone wants a "hackable" machine - but for those that
| do, it's rather trivial to bypass the mechanisms.
| ogre_codes wrote:
| Apple only has to sign your app if you want to _distribute it_.
| You can run apps you build without getting them signed. You can
| build local apps, run Python / Ruby/ Elixir code on your own
| computer without Apple ever knowing. Likewise on the iPhone
| actually, though I have to build the software on the Mac.
| mhh__ wrote:
| > distribute it
|
| Hardly a saving grace, no?
|
| Apple are still judge, jury, executioner, and taxman as to
| what the vast majority of their customers can run with their
| already expensive hardware.
| ogre_codes wrote:
| > Apple are still judge, jury, executioner, and taxman
|
| Does that mean Tim Cook is Judge Dredd?
|
| The reality of distributing Mac Software is far more boring
| than you paint it.
| rho4 wrote:
| Just this month we moved the installer creation step of our build
| pipeline to an on-premise mac mini in order to let install4j
| handle the signing & notarization (for windows, linux and mac).
| rootsudo wrote:
| I never knew this was so much to write about. Whatever happened
| to the days of having an apache web server, having it in a zip,
| and just hosting it? If it's small enough, personal S3 bucket?
|
| If paranoid, post the SHA1/MD5 hash. I guess signing the app too.
| jolux wrote:
| It's not much more complicated than just sticking it in an S3
| bucket. This article seems to be more about the broader
| implications for your business about choosing one route vs the
| other. Guilherme mentions that GitHub Releases work fine for
| open source apps.
| jws wrote:
| "Transmission", a popular Mac bit torrent client did it the
| simple way. They ended up distributing a disk destroying
| malware to their users.
|
| If you only distribute your Mac software outside the store, and
| aren't inherently ineligible for the store (like a full disk
| space measuring program) I just assume you are up to no good or
| don't care enough about my security and pass on your product.
|
| If you aren't willing to fork over $100/year to at least
| minimally tie an identity to your actions and go through all
| the signing nuisance then you don't get control of my computer.
|
| Now that we are living in a notarized application world I may
| have to rethink this and loosen up, so the nuisance you go
| through notarizing your app is in some sense the entry fee to
| sell to some security conscious customers.
| kranner wrote:
| The $100 fee is not the issue.
|
| You also give up 15% or 30% of revenue to Apple; have to go
| through app review on every update facing arbitrary
| rejection; have no direct relationship with your users; can't
| offer upgrade pricing on significant new releases (existing
| users either get the new release for free or you make it a
| new SKU thus forcing everyone to pay full price, including
| existing users).
| webmobdev wrote:
| For me, $100 annual fees is also an issue. It's just an
| unnecessary and useless burden for not just open source
| softwares, but commercial wares too. Moreover, why should
| Apple get a monopoly on this - non-profits like EFF or the
| FSF should be allowed to do something similar, or even
| other corporates. Isn't that what we do currently with
| browsers and certificates?
| p0nce wrote:
| For $100 you get a precious _codesigning_ certificate, the
| equivalent cost more money on Windows because it's not
| organized by Microsoft but left to 3rd-party vendors that
| abuse their position. Codesigning is essential for
| security.
| kranner wrote:
| I actually argued that $100 is not a big hurdle, but now
| I feel I should ask why it can't be $10? SSL certificates
| used to cost a lot until LetsEncrypt made them free.
| p0nce wrote:
| IIRC LetsEncrypt provide website certificates but not
| codesigning certificates. The entities giving codesigning
| cert need to verify you exist by checking an company
| index and phonecalling you. Apple makes it way easier on
| their platform.
| ogre_codes wrote:
| Well Gumroad, the storefront he's using charges 5% or 3.5%
| + $10/ month so unless you are earning more than $1m/ year
| you are only saving 10-11.5%. Plus you have to host your
| own code which is another (very small) fee.
|
| You also lose access to some of Apple's cloud service like
| Sign in With Apple which some customers prefer (self
| included). There are also some additional sales just due to
| being in the App Store.
|
| Which is to say, the getting rid of that 15% fee isn't a
| slam dunk. Even before the Apple Tax cut, many developers
| chose to use the App Store even when the fee was 30% for
| good reason. I suspect if you are earning $900k in the App
| Store and launching a new product the math gets quite
| weird.
| foepys wrote:
| > unless you are earning more than $1m/ year you are only
| saving 10-11.5%
|
| 10% is a lot.
| ogre_codes wrote:
| If you sell 50 copies independently for $100 you save $10
| or $500.
|
| If listing it in the App Store means you would sell 150
| copies instead, how much is that savings worth?
|
| I didn't suggest it was cheap, I said many people find
| it's worth spending the money.
| webmobdev wrote:
| > "Transmission", a popular Mac bit torrent client did it the
| simple way. They ended up distributing a disk destroying
| malware to their users.
|
| APPLE APP STORE, a popular app store also distributed a
| malware / spyware bundled within a messenger app -
| https://www.bbc.com/news/technology-50890846
|
| > If you aren't willing to fork over $100/year to at least
| minimally tie an identity to your actions and go through all
| the signing nuisance then you don't get control of my
| computer.
|
| You don't need to pay $100 to a corporate to verify your
| identity and gain the trust of your users. Open source users
| have been doing it without paying a single penny to any
| corporates so far.
| jws wrote:
| Just a little more info and a meta-HN fact:
|
| I don't ordinarily use bit torrent, but I was downloading a
| couple OS images and the provider requested I use bit torrent
| so I went and got Transmission during the period while the
| malware was up, but before Transmission discovered it. I got
| lucky and saw a news article, perhaps on HN, about the
| infection the next day or two, verified I had it, removed it,
| and ran a set of offline backups. Had I not caught it, after
| a several day waiting period the malware would have encrypted
| my drives for ransomware. So I got ridiculously unlucky to
| get the infection, and then ridiculously lucky to see an
| article suggesting I might have it before it went off.
|
| About HN, the parent comment is getting a disappointing
| amount of up and down voting relative to its total score.
| [deleted]
| ogre_codes wrote:
| You can do that. The only extra step is you need to have your
| app signed by Apple. Not App Store review, it just scans for
| malware and signs it.
| PurpleFoxy wrote:
| And charges you $100/year for that scan.
| smnrchrds wrote:
| Is it at least available in all countries?
| GeekyBear wrote:
| The extended validation code signing certificate you need
| for your software installer to get around Windows 10's
| SmartScreen isn't free either.
| nicky0 wrote:
| That's really not a lot of money if you are selling
| software as a business.
| fsflover wrote:
| And what if you are a non-profit?
| The_Colonel wrote:
| Sad reality is that if you'not making profit (which Apple
| takes cut of), you're not important for Apple.
| CandyFace wrote:
| I can speak for the cross platform open source project I
| work on; we don't pay the license fee. That means
| regularly bumping into new users that need help with
| opening the mac application, so we've written a "How to"
| guide as a workaround . It's an annoyance we'll live
| with, probably until we hit v1.0 and then i'll probably
| take it upon me to pay that fee.
| [deleted]
| sneak wrote:
| https://lapcatsoftware.com/articles/unsigned.html
| gh123man wrote:
| Agreed. I worked for (very large company) distributing a mac
| app outside the app store. Other than the distribution + update
| benefits (and a couple entitlements) you get from the app
| store, the freedom you get by living outside the sandbox
| outweighs it IMO.
| oneweekwonder wrote:
| The article recommends create-dmg to create a disk image, but it
| depends on node/npm.
|
| A python alternative would be: dmgbuild[0]
|
| [0]: https://github.com/al45tair/dmgbuild
| vkaku wrote:
| We need these writeups for iOS as well. Distribute IPA files
| without a problem!
| doomlaser wrote:
| I distribute a Mac app outside the app store. In my case, it's a
| freeware tool to hide the cursor with a hotkey or idle timer:
| http://doomlaser.com/cursorcerer-hide-your-cursor-at-will/
|
| Architecturally, it's two "apps", a System Preference pane and a
| daemon that actually does the hiding.
|
| There's a new dance in the last year or so where you must
| notarize your app before distribution. This is a bit more
| involved than just code signing, but it's workable. If you
| codesign and notarize your app, it's still possible for everyday
| users to download and launch without _too_ much trouble.
| beowulfey wrote:
| I have a silly question. Is it possible to sign and notarize an
| app for macOS without paying $99/year? I am writing an open
| source program and want to make it easy for people to install
| but I don't think I can justify the cost for something probably
| no one will see. It's pretty niche.
|
| I've called Apple about it and I've searched the web, but I
| haven't got a definitive enough answer to satisfy my
| uncertainty (although I strongly suspect it is the case).
| Admittedly it may just be a last tenuous thread of hope that
| keeps me searching.
| gradschool wrote:
| > I have a silly question.
|
| I have a sillier answer. You could put it on github and
| invite any volunteer with an Apple developer account to fork
| it and cope with Apple on your behalf. You could also pledge
| to do it yourself if you raise $99 plus the cost of your time
| in sponsorship.
| lapcatsoftware wrote:
| > Is it possible to sign and notarize an app for macOS
| without paying $99/year?
|
| Almost certainly not. Apple does technically have fee waivers
| for eligible organizations -- note the term organizations,
| not individuals -- but the red tape required effectively (and
| ironically) puts this out of the reach for most individual
| open source developers:
|
| https://developer.apple.com/support/membership-fee-waiver/
| beowulfey wrote:
| Alright, that's pretty much what I expected but glad to
| hear it definitively. Thank you!
| sneak wrote:
| Unless you need the NetworkExtension API to be a vpn; Apple
| only notarizes those in the App Store.
|
| This is why you can't download WireGuard from the WireGuard
| website - only from the App Store after providing ID (email and
| phone are the minimum required to get an Apple ID, required
| even for free apps).
|
| It's not as easy as simply notarizing via the dev program and
| then self-publishing; some APIs are totally off-limits outside
| of the App Store.
| xvector wrote:
| How does Mullvad do it, then? Their Mac app is downloaded
| directly from their website, and WireGuard is used for their
| VPN.
| aequitas wrote:
| I think Mullvad doesn't use the NetworkExtension API but
| relies on tun/tap. WireGuard used to do this in the past.
| But if you want to run a VPN on iOS devices you need to
| implement via NE anyways, so I believe the development was
| streamlined and the macOS version was build using NE as
| well. Afaik you can still install WireGuard via Homebrew:
| https://www.wireguard.com/install/#macos-homebrew-and-
| macpor...
| sneak wrote:
| Older, deprecated API that requires root and will likely
| soon be removed from macOS.
| lapcatsoftware wrote:
| > Apple only notarizes those in the App Store.
|
| To be pedantic, this is not notarization. The term
| notarization only applies to software distributed outside the
| the App Store. The developers themselves sign the software
| with a Developer ID code signing certificate, and then Apple
| notarizes the signed software.
|
| Whereas software distributed in the Mac App Store is all
| signed by Apple itself rather than by the developer.
| tata202008 wrote:
| Thanks for Cursorcerer!
| ziaddotcom wrote:
| Glad to find out they notarized this. It isn't a .app though,
| which I think several in the thread are hoping to distribute
| outside the app store without making it difficult/spooky for
| the end user.
|
| If they notarized your prefpane/daemon combo, I suspect they
| would notarize quite a few .app applications that are properly
| signed and not malicious or frowned upon use cases.
| deergomoo wrote:
| I was under the impression they would notarize essentially
| anything that doesn't match known malware? It's an automated
| system, not a manual review.
| ziaddotcom wrote:
| https://developer.apple.com/documentation/xcode/notarizing_
| m...
|
| Anything that doesn't follow all the steps here wouldn't be
| notarized, I'm assuming. If a whatever.o file compiled from
| whatever.cpp with gcc from the command line wouldn't have
| any viable way of just being uploaded to a website for
| notarization. You'd have to at least go through all these
| steps. As far as I can tell, you'd need to have xcode to do
| that.
| klmr wrote:
| You need to have Xcode installed, but you don't need to
| actually _use_ the Xcode GUI for notarisation, you can
| use command line tools via `xcrun {altool,stapler}` to
| achieve the same. My company is distributing a Java
| application with a compiled JNI component written in C++,
| and I created the macOS distribution process for the app.
| It's fully command-line based for automated deployment.
|
| Packaging and notarisation is a pain, but it _is_
| possible, even though the app we're distributing is self-
| contained, so it includes a minimal JRE distribution,
| dynamic libraries, utility binaries, and a loader. All of
| these components must be code-signed and notarised (not
| individually, only the complete bundle is submitted, but
| all components are inspected).
| user-the-name wrote:
| .o files aren't notarised. Only the executable files that
| will be run by other people are.
| ziaddotcom wrote:
| I suppose I could have wrote that a single .o file can be
| made an executable by gcc if the .o has a main function.
|
| Nearly any file can be set as an executable, and surely a
| bash script set to launch an un notarized app in your
| application folder wouldn't magically bypass the
| gatekeeper security prompt for that app.
| user-the-name wrote:
| Command line tools do not use notarisation at all.
| ziaddotcom wrote:
| https://scriptingosx.com/2019/09/notarize-a-command-line-
| too...
| CommieDetector wrote:
| Sound like something only a Trump supporter would do....
| #cancelrambo
| The_Colonel wrote:
| I'm building my app for all platforms (Win, Lin, Mac) on a Linux
| machine, so I don't (can't) sign or notarize.
|
| It's been going OK so far, but it seems like screws are
| tightening and when this workflow doesn't work anymore, I will
| simply stop supporting Mac (this applies to M1 too).
| steeleduncan wrote:
| How are you building a macOS app from linux? Is there some
| equivalent of mingw?
| patrickg wrote:
| There is osxcross: https://github.com/tpoechtrager/osxcross
| The_Colonel wrote:
| My app is based on electron and electron-builder can do Mac
| x86 builds on linux.
| elliottkember wrote:
| GitHub Actions has OSX runners. I'm building an Electron
| app too and my builds run in Actions. Electron even has
| arm64 builds now. It works great
| The_Colonel wrote:
| Interesting, I need to look into it.
|
| ARM64 is nice too, but for me not applicable. I won't
| dare to produce builds which I can't test ...
| telesilla wrote:
| I can't remember where but there is a group of devs who offers
| to sign mac apps for open source developers.
| [deleted]
| jermaustin1 wrote:
| Why wouldn't you find a person with a Mac to sign the package?
| An apple developer account is only $100/year.
|
| I feel that is certainly worth it for a software developer that
| does any meaningful business on the platform. Maybe you don't
| get much Mac users, but if you did, I'd definitely look into
| it.
| filleduchaos wrote:
| Not everybody writing software for a platform is doing
| business on it. Many apps are free.
|
| Then again I've never really understood the point of free (as
| in beer) software that's not also open source (or at least
| source available), so personally I think dropping platform
| support for a [free, cross-platform] application rather than
| simply distributing a tarball for users to do as they wish
| with is a bit dramatic.
|
| Personally though I think it's weird that so many people are
| okay with distributing on platforms they don't even own. It's
| particularly rampant in cross-platform dev - I don't
| understand how anyone can feel comfortable just publishing an
| app on Android and/or iOS when they've never tested it on a
| real device, to talk of actually collecting money for it.
| The_Colonel wrote:
| To clarify, my app is free and open source. There's nothing
| really preventing users from building the app themselves,
| and some of them do that. But building yourself is not
| something most users can do. So when talking about
| "dropping support", I mean specifically stopping doing Mac
| builds myself. (Or rather not creating new builds for M1
| Mac and similar, I'm okay with doing builds for old x86)
|
| > Personally though I think it's weird that so many people
| are okay with distributing on platforms they don't even
| own.
|
| It's not very comfortable, and I had a lot of inner
| discussions about this. I originally supported only Linux
| and Windows (platform I use and test on regularly), but
| inevitably Mac users came and wanted to use the app too.
| It's quite difficult to reject such users when in theory a
| simple cross-build does not seem so difficult.
|
| As mentioned before I'm using Electron and fortunately it
| does shield you from majority of platform specific bugs, so
| not testing each and every release on Mac turned out mostly
| OK. There are other issues though - Mac is very opinionated
| and many things / conventions are very different from
| Linux/Windows. As a result a simple cross build of my app
| is quite "foreign element" and users ask for mac specific
| features. My eventual solution was a compromise of "I
| provide builds but don't implement any mac specialties".
| jermaustin1 wrote:
| Surely a contributor has a Mac, and could take over code
| signing, and pushing that into your dist or bin
| directory?
|
| I would think it would definitely be worth putting up an
| issue, asking if any have a Mac for that reason,
| especially since you have users actually asking for Mac
| builds.
| The_Colonel wrote:
| GitHub says my project has 34 contributors, but in
| reality it's a one-man show, just like the majority of
| open source software. I would of course welcome if
| somebody would do the signing, but nobody stepped up to
| do it.
| [deleted]
| wackget wrote:
| > only $100/year
|
| That is an absolute robbery for something which should be
| free.
| jermaustin1 wrote:
| Code signing isn't free. It never has been free, and most
| code signing certificates are 300-500/yr.
| anoncake wrote:
| Apple is the one who wants the code signed so they should
| pay.
| pier25 wrote:
| $100 is lot of money in many parts of the world, specially if
| your app is free.
| moistbar wrote:
| >An apple developer account is only $100/year.
|
| When the other operating systems have options that are
| entirely free of cost, that's not as good of a deal as you
| think.
| bhj wrote:
| How do you sign for free for Windows? When I last looked at
| certs they were as expensive if not more, and they still
| wouldn't solve the SmartScreen "not frequently downloaded"
| warning problem
| resynth1943 wrote:
| $100 is very expensive compared to the other platforms. These
| licensing fees destroy the majority of open-source projects
| geared around said platforms, sadly.
| fartcannon wrote:
| You know what you can run whatever you want on? Linux and a
| myriad of other open OSes.
|
| Just stop using Macs/Windows. You can have it better. You deserve
| to be treated with respect.
| lostgame wrote:
| >> Just stop using Macs/Windows. You can have it better.
|
| Someone is privileged / in a bubble enough to think this is
| even remotely plausible for a massive chunk of people.
|
| When _native_ Photoshop, Final Cut Pro, Logic Pro X, hell; even
| _Unity_ makes it to Linux, I'll be able to _consider_ it.
|
| Until then, I make my money off those apps. How is not having
| access to the vast wealth of commercial software 'having it
| better'? Even for just the average person?
|
| It's not. Plain and simple.
|
| Can we finally just drop this 'just go to Linux' shit? It
| really only works for Grandma or Mom who only needs to check
| their emails, Facebook and type documents, and programmers who
| happen to be lucky enough to have that extremely limited set of
| tools work for them.
|
| Until solutions like WINE are no longer required and commercial
| software is available it is and will remain a non option for
| the vast, vast majority of professionals using a computer.
|
| No offence intended - but _seriously_ every time someone posts
| 'everyone should just move to Linux it's so much better', I
| have to ask myself how isolated in that community they made
| themselves to make that 'realistic'.
| [deleted]
| swebs wrote:
| Unity is available for Linux. The beta has been available
| sincle like 2015, but UnityHub for Linux is an official
| release nowadays.
| triceratop wrote:
| I wish articles like this were around when I built my crypto
| trader mac app. I agree with others here that codesigning is a
| pain. One thing -- I don't really think adding licensing/copy
| protection is that hard and I personally think it is beneficial.
| I use a SaaS to hadnle the backend of that. It's been awhile but
| I remember it being pretty painless to integrate a simple
| licesning setup where my users activate devices up to their
| maximum according to their license key's tier.
| jaimex2 wrote:
| It still puzzles me to this day why developers are happy to
| develop for Apple products. If the red tape alone doesn't make it
| a deal breaker the % cut certainly should.
| ziaddotcom wrote:
| Pat Sayjak, I'd like to solve the puzzle. "ios is two thirds of
| the hundred billion dollar mobile app market"
|
| https://www.businessofapps.com/data/app-revenues/#1
| random5634 wrote:
| Because apple provides a tradeoff - a VERY trusted ecosystem
| that folks are happy to spend big money in knowing they are
| pretty safe (no impossible to cancel subscriptions).
|
| The ecosystem as well is pretty aggressively updated - even old
| devices (by most company standards) remain supported AND
| updated - so your development target is not terrible.
|
| So in short - you can make good to great money on the apple
| ecosystem as revenue per install is higher and ecosystem
| support costs lower.
| PurpleFoxy wrote:
| 3rd parties kind of shot themselves in the foot by abusing
| the fuck out of users in every way possible and now things
| have swung in the other direction where users all flock to
| marketplaces that prevent the abuse even if sellers get
| charged a huge fee.
| oefrha wrote:
| Yes.
|
| On the one hand, having NE entitlements restricted to MAS
| and the associated pain of MAS distribution is real.
|
| On the other hand, a few years ago, I once installed some
| garbage corporate VPN software on a Windows machine of mine
| so that a family member could connect to their office to
| resolve an urgent matter. I later realized it was
| impossible to uninstall. It seemed to have somehow managed
| to embed itself deep into the network stack initiation
| process, and since you can't delete an open file on
| Windows, it was impossible to remove. I booted into the
| Windows equivalent of recovery mode and forcefully removed
| the files from a DOS prompt, but then the whole network
| stack was borked. Not knowing which registry keys to edit I
| had to reinstall the damn OS.
|
| With that experience in mind, I'd really appreciate the
| peace of mind of knowing deeply system-altering software
| can be cleanly removed.
| random5634 wrote:
| I had this experience a few times. I used to buy outside
| the standard marketplaces (was an early cydia user as
| well).
|
| Reality - if they can scam you they will.
|
| 1) An annual subscription with no renewal notice AND that
| you couldn't cancel out of the 7 day period before renewal.
| So because I subscribed outside the app store I was
| screwed. After paying another $150 for a year I didn't want
| the service for, spending time arguing, I had to set a
| calendar invite for a year away to myself, then find out
| you can only cancel by CALLING them at a UK number! Of
| course it was acres of time being on hold.
|
| I ended up just switching off that credit card and sending
| them an email saying I was canceling. They still send me
| past due bills saying my card was declined yadda yadda.
|
| Contrast that with apple. You get an alert IN ADVANCE that
| you have subscriptions coming up. If you uninstall an app
| with a related subscription it asks if you want to cancel
| subscription PROACTIVELY etc. And you seem to get benefits
| via family sharing on subscriptions that automatically flow
| to family members without having to share passwords which
| is nice.
|
| So yeah, subscriptions (as just one example) I go through
| app store if at all possible.
|
| And of course, this extends to everything. On my windows
| machine we also have that corp VPN stuff -> which they then
| somehow use as a marketing channel to popup notifications
| around security etc that I need to buy or get anti-virus
| etc. I'm sure there are settings to turn this stuff off,
| but what a pain.
|
| My parents it is even worse. On windows all the ads and
| toolbars that are "helpfully" installed I am convinced are
| 99% adware / malware. For some reason my parents (elderly)
| have no problems with their ipad by contrast.
| ogre_codes wrote:
| What red tape?
|
| Your app is signed and that's it. Not App Store review, just
| signed by a bot. The rest is all just discussing things like
| copy protection, where to host, etc.
| asiando wrote:
| Plus signing up and paying for a developer ID. While it's
| easy to minimize all of this, it's still red tape and it's
| extra work one has to do.
| w0utert wrote:
| >> _Plus signing up and paying for a developer ID._
|
| Signing your app and distributing it outside of the Mac app
| store does not require a paid developer ID.
| asiando wrote:
| Yes it does if you want to be allowed by Gatekeeper.
|
| What's the point of Gatekeeper if getting a new
| certificate is free? Once your malware is blacklisted you
| could just use the next one at no cost.
| w0utert wrote:
| That's moving the goalposts. The point was that signing
| and distributing an app outside of the App Store does not
| require a paid developer account, not that it would play
| nice with Gatekeeper. You can still option-click and run
| the installer even if it is not notarized.
|
| Note that I will concede that it is extremely stupid and
| greedy of Apple to require a paid account for notarizing
| apps, particularly free apps, because it is in their best
| interest if more applications would be notarized, and
| they are not particularly hurt for cash either. It's
| inexplicable TBO. But that doesn't mean you cannot
| install signed but non-notarized apps without a paid
| developer account.
| jbverschoor wrote:
| You sign up for github, hackernews etc too.
|
| It's a little bit of extra work, which is in your build
| scripts anyway. And it protects against some attacks.
|
| To me it just sounds like bitching against Apple.. some
| old, same old
| jcelerier wrote:
| > You sign up for github, hackernews etc too.
|
| but it doesn't cost a cent
| jbverschoor wrote:
| So does a domain name, so did an SSL certificate, so does
| any payment provider, so do many many other things.
| Heck.. so is facebook, so is whatsapp. When it's about
| those "we" like to complain that there should be a paid
| version instead of a free version. It's just a load of
| bs.
|
| The article is not even about distributing free
| applications. It's about paid applications.
| klmr wrote:
| Distributing an OSS app requires neither a domain name
| nor an SSL certificate. And even if you shell out for
| these, they cost me _vastly_ less than an Apple developer
| subscription. For somebody who develops OSS just for fun
| in their spare time, doesn't make (nor expects to make)
| any money from it, and would rather spend time and other
| resources on interesting stuff, the 100 USD fee is
| essentially a no-go. I don't mind paying for my hobby but
| (1) I've got more than one hobbies and I'm not rich, and
| (2) I'd like to perceive that the money I spend actually
| gives me something. For my purposes, an Apple developer
| subscription doesn't feel like it is.
| cute_boi wrote:
| > "100 USD fee is essentially a no-go."
|
| I simply fail to understand why people are so privileged
| to think $100 is no-go. Its not one time fee. Its yearly
| fee. and $100 is probably half of 1 month salary in many
| Asian countries.
|
| > "Distributing an OSS app requires neither a domain name
| nor an SSL certificate"
|
| One can just release app on homebrew or even github
| release and guess what they don't need domain name or
| certs. Yes github/homebrew paid that cost but OSS dev
| doesn't have to pay that much cost to release the
| opensource app.
| ogre_codes wrote:
| If you are distributing an OSS app, put it in HomeBrew.
| Done
|
| There are thousands of OSS apps available on the Mac.
| None of them are signed. This includes many GUI apps like
| iTerm.
|
| Most people who use OSS apps are already going to have
| HomeBrew regardless.
| jcelerier wrote:
| I don't understand. of course it's a problem that DNS
| costs money, and of course it was a big problem than SSL
| cost money.
| judge2020 wrote:
| I think OP is including iOS in their scentiment.
| webmobdev wrote:
| They are short-sighted. They don't realize that they are the
| ones adding value to Apple's platform, and they shouldn't have
| to pay Apple to do so! With its app store, Apple acts like a
| corrupt bureaucrat middleman between developers and users, and
| demands an unnecessary bribe from both to distribute and use
| the app. It reduces profit for the developers and increases
| cost for their clients.
| bigbizisverywyz wrote:
| I don't think they are short-sighted. I think they realise
| that the app store gives them such a leg up in the process of
| packaging, distributing, managing updates, helping with
| discoverability, ensuring platform compatibility and
| (optionally) taking payment of their software that they
| easily see the value advantage to going on the app store
| other than doing all that themselves.
|
| Managing all of that yourself would leave less time for
| development, would cost a lot more than the app store fees &
| cut and would be in itself an insurmountable barrier to many
| who might not even bother (particularly small freeware apps).
|
| On the whole I'd say the app store benefits the majority of
| developers, particularly smaller ones.
|
| The companies that do chafe at the bit though are the larger
| ones for whom all of that infrastructure is already taken
| care of, and it's no barrier for them. They seem to resent
| Apple's cut which would probably explain the Fortnite fracas.
| webmobdev wrote:
| Everything you've described is exactly the things they are
| short-sighted about - if you need to grow your business
| these are the things you need control and oversight over,
| and need to master. Betting your business on one horse
| (whose feet are tied) is just plain stupid.
| ajconway wrote:
| Because Apple users have done nothing wrong and deserve nice
| software too.
| notsureaboutpg wrote:
| No one deserves nice software. If it is extra work for devs
| to build software for your platform, you should pay
| appropriately. Apple users tend to do so, so all is well,
| when they eventually devolve into being like the majority of
| the population (freewheelers who whine and moan when apps
| hampered by Apple's horrible anti-developer practices don't
| work well) then devs will stop developing for them
| apozem wrote:
| Simple. Apple users spend more [1]. Not to say you can't make
| money on Windows, Linux or Android, obviously there are
| thousands of successful software businesses on those platforms.
| It's just that iOS and Mac users really don't mind spending.
|
| Apple users also seem to appreciate (and pay for) boutique
| indie apps. As a Mac user, I paid $25 for Byword just because
| it was a really nice Markdown editor. That appetite for quality
| apps gives indies a great market opportunity.
|
| Edit: oh yeah, and a lot of devs use macOS so why wouldn't they
| want great apps on the platform they use?
|
| [1]: https://www.appannie.com/en/insights/market-data/mobile-
| hit-...
| tzfld wrote:
| May be if I would like 'boutique indie apps' I wouldn't chose
| a platform so restrictive to indie developers.
| lapcatsoftware wrote:
| Developers can switch to a different platform, but the
| problem is that their customers won't switch. The customers
| for boutique indie apps simply do not exist on Linux. And
| they don't exist on Windows to the extent that they exist
| on the Mac. The Mac has always been by far the best
| platform to find customers for boutique indie apps, long
| before Mac code signing existed, and that equation hasn't
| changed even though Apple is now getting worse and locking
| down the Mac.
|
| In general, I find the idea strange that developers can
| simply avoid being dependent on Apple. Look at two of the
| largest corporations in the world: Google and Facebook.
| They are themselves platforms. Google has its own mobile
| OS, Android. And yet... these companies _still_ have big
| problems with Apple. They still need iOS apps, they still
| have to go through App Store review, etc.
|
| The world is such that it's extremely difficult for anyone
| to avoid being dependent in some way on the BigCos. If you
| think the web is independent, just consider Flash-based web
| sites. Not so independent anymore, eh? Turns out Google and
| Apple also control the web browsers. Consider physical
| product producers and Amazon. And look at how Parler was
| simultaneously deplatformed by _everyone_. These BigCos are
| the elephants in the room, you can 't ignore them.
| kitsunesoba wrote:
| > Developers can switch to a different platform, but the
| problem is that their customers won't switch. The
| customers for boutique indie apps simply do not exist on
| Linux. And they don't exist on Windows to the extent that
| they exist on the Mac. The Mac has always been by far the
| best platform to find customers for boutique indie apps,
| long before Mac code signing existed, and that equation
| hasn't changed even though Apple is now getting worse and
| locking down the Mac.
|
| I would also argue that even despite restrictions, spotty
| docs, and bugs, macOS is still one of the strongest
| platforms for creating polished boutique apps. The
| toolkits available elsewhere have technical advantages
| (like being cross platform), but getting the little
| details right is so much more difficult with them that
| meeting the same bar of quality is a much taller order. I
| think a dev wanting to accomplish something similar in a
| cross-platform manner is going to have to do something
| similar to what the Sublime guys have done with
| developing their own in-house toolkit.
| pjmlp wrote:
| Because Apple, alongside Google and Microsoft platforms,
| provide a whole stack experience in tooling and SDKs, instead
| of endless configurations of home made distributions, and
| people on those platforms usually pay for their apps, even when
| taking piracy into account.
| p0nce wrote:
| The users are there and are wanting good software that they are
| even willing to pay for! Jumping through hoops is just a price
| to pay for it. I also like servicing demanding users ; Apple
| users demand software that works full stop.
| bromuro wrote:
| I love programming on Apple platforms, they are beautiful
| devices and the UX is the best.
| notsureaboutpg wrote:
| I honestly think it's some of the worst UI on planet Earth.
| Every time I use one of these it's impossible to do what I
| want to do.
|
| Try signing out of one icloud account on a Mac laptop and
| signing into a different one. You need to open several apps,
| dig through various random disconnected menu options, click
| past several warnings, and wait a long long time sometimes
| (often with no visual feedback that the task you started is
| done).
|
| And I feel like most things in Apple ecosystem are like this.
|
| iOS doesn't even expose a file system to the users, so so so
| many of my family members on iOS have no idea where to go
| once they download a document or audio file or video file to
| then play it back. The worst part about this is that there is
| a Files app, but you can't save files you download to any
| folder that app exposes. Why? Who knows??
|
| Sorry for getting heated, but I've just had such frustrating
| experiences with the platform. Maybe someone can give some
| examples of the amazing UX they have then I'll see more
| clearly why people like it. My instant reaction is to
| remember all my wasted time trying to do simple tasks with it
| nicky0 wrote:
| For me, it's simple. On balance, it's a great platform to
| develop for, and I make a good living from it doing work I
| enjoy. I also appreciate the community of Mac users that use my
| apps.
| ChrisMarshallNY wrote:
| This is a great guide!
|
| My own preference is to try using the Mac App Store, if possible.
|
| One reason, is that I'm lazy, and most of my stuff is free, or
| first-tier priced. I'm not too concerned about Apple's cut.
|
| Another reason is that it is another level of QA for my app. Sort
| of a "peer review." I'm fairly obsessed with Quality.
|
| But it's not something that has ever been a "big deal" for me, so
| the stakes have not been too high.
| lapcatsoftware wrote:
| > Another reason is that it is another level of QA for my app.
| Sort of a "peer review." I'm fairly obsessed with Quality.
|
| In my experience, don't expect much from App Store reviewers.
| Their primary concern seems to be simply protecting Apple's own
| intellectual property. If you want testing, distribute your app
| to beta testers.
| ChrisMarshallNY wrote:
| Not to worry. I would never rely on it. But what they are
| good for, is some basic usability, and "Apple user expect
| this" kind of things.
| TYPE_FASTER wrote:
| FWIW, Microsoft's Visual Studio App Center will build and
| distribute iOS apps: https://visualstudio.microsoft.com/app-
| center.
| adamnemecek wrote:
| I'm surprised there isn't a startup solving this. Cross-platform
| Sparkle for updates (probably written in Rust), payment
| processing, DRM. Maybe even some sort of App Store-like thing for
| discoverability.
|
| I'm also kinda surprised how desktop app development is not not
| quite as "hip" as mobile. I'm guessing it's due to the relatively
| difficulty compared with mobile.
| nicky0 wrote:
| I'm glad it's not hip, less competiton for us Mac developers!
| iOS developers are welcome to their overcrowded market.
| [deleted]
| qppo wrote:
| Why ship a desktop app when you can ship a browser product?
|
| The business incentives often outweigh the technical benefits
| of desktop apps. DRM and payment processing are easy.
| Discoverability is a shit show but the only competitive
| advantage to app stores is exclusivity. No need to worry about
| provisioning user machines, DLL hell, whatever.
|
| And whatever you do you're going to pay a couple of release
| engineers anyway.
| adamnemecek wrote:
| Maybe you are building something performance sensitive.
|
| DLL hell isn't a problem. You can just ship a stand-alone
| binary if you want.
| novok wrote:
| Figma has shown if you want perf, you write it in C++ and
| distribute as web assembly and still stay in the browser.
| astlouis44 wrote:
| Could not agree more, and my bold prediction is that we
| will see a major migration of desktop apps that run on
| WASM at near native performance. The benefit of being in
| the browser is clear to both developers and end users,
| especially if the performance gap isn't big. What's
| really exciting to me is the disruption of incumbents in
| various industries, the only real one we've seen so far
| is Figma's webapp eating away market share of
| Sketch/Adobe's native clients.
___________________________________________________________________
(page generated 2021-01-13 23:02 UTC)