will it be possible to publish a screensaver on the upcoming mac app store? - macos

We are working on a stylish screensaver that we would like to publish on the upcoming mac app store. Do you think it will be possible to release a screensaver? We reviewed the draft guidelines but still not sure about it.
Thanks, Renaud

I actually tried writing Apple and ask about this. Since the screensaver has to install files (or rather a file - itself) to a system location, and since it is not really an app you want to open at will, I figured there was a good chance that it's outside the scope of the app store. The reply from apple was just a generic reference to http://developer.apple.com/support/mac/ and http://developer.apple.com/programs/register/. I wrote them back and said that I didn't want to fork out the $100 for the developer program unless I knew the guidelines for screen savers. Their reply was: "Please know that developers should be testing and developing their apps in line with the Mac Developer Program License Agreement and the App Store Review Guidelines.
Should you have any questions or concerns, we request that you review the Mac Developer Program License Agreement details with your own legal counsel. If you choose to enroll in the Mac Developer Program, you will have the ability to review the Mac Developer Program License Agreement before purchasing the program."
Thanks a lot Apple, I'll review your reply with my legal counsel.
ps. I know this doesn't really answer your question, but at least it tells you not to waste time trying to ask Apple about it. If you do find an answer, I'd be very interested to know about it.

No you can't. It requires the app to create files outside its area. There are plenty of restrictions in the App development guidelines which prohibit that.
I think you need authorisation for that which is also a recipe for rejection.
From June all apps has to be sandboxed which makes it even more impossible.

Related

Code signing MacOS application without Apple Developer Account

I just finished developing a macOS application. I compressed my application and gave the zip to my friend. Then he said that it is from unknown developer. I don’t want that to show. So I found out that you have to pay 99$ for distrubution. I don’t want to pay any money. I dont know how to do that. Can you please help me with that
I just finished developing a macOS application. I compressed my application and gave the zip to my friend. Then he said that it is from unknown developer.
That's Gatekeeper. The whole point of Gatekeeper is to provide a level of assurance that your app isn't malicious, and that assurance comes from Apple.
So I found out that you have to pay 99$ for distrubution.
You can distribute your app yourself, but in order to avoid the Gatekeeper warning you have to sign the app with a key that matches a certificate issued by Apple, and you have to have the app notarized by Apple. You're not paying for distribution, but you are paying for membership in Apple's developer program, which enables you to create certificates etc.
I don’t want to pay any money. I dont know how to do that.
I don't know how to do it either, and as doing it would pretty much defeat the point of Gatekeeper and undermine Apple's efforts to protect its platform from malware, it's probably not realistically possible.

Is it possible to distribute signed mac apps (with a free dev account) without the mac app store?

This might seem a silly question, but I come from iOS development which is a bit more restricted as we (all) know.
My question is partially answered here:
Is the mac app store required?
But I still have a doubt. Basically what I want is to develop a simple app with some 3rd party frameworks in and then give it to a friend for normal usage.
Are there any restrictions in any regard? I have a free iOS and Mac developer account.
Yes, you can do that. You do not need a Mac developer account at all. I would still suggest that you code-sign the app bundle though.
The only caveat is the user would needs to change a setting on their Mac to allow it through Gatekeeper.

Mac App Store, what DRM exists and how to authenticate purchases?

I have an app on the Mac App Store.
To meet the store requirements I had to remove my own serial code requirement at startup and then use apples purchase mechanism.
This raises some issues.
I have no way of knowing if a user has paid or not.
The /MASReciept/receipt data appears to only guarantee that the original purchase was genuine.
So whats stopping someone simply copying the .app to another mac?
I tried this and it worked.
As I am in a sandbox and can not see the actual mac how can I differentiate between the purchase mac and the mac the app is used on?
I am actually happy for the user to install on many macs that are using the same itunes account or part of family sharing.
You can validate the receipt either locally or through the App Store.
See the Receipt Validation Programming Guide
This is basically just a deterrent like most any other protection; a clever person can generally pirate an app at will, and there's not a whole lot you can honestly do. I would recommend focusing on making your app better — if it's worth buying then usually people are willing to pay for it.

Does Apple offer TestFlight beta testing for OS X?

TestFlight is a welcome change for iOS. It makes distributing beta versions painless for both the developer and the testers.
Does Apple support TestFlight for Mac OS as well? I've done quite a bit of searching and haven't found anything conclusive one way or the other.
We have an OS X app store app that turns out to have an install problem with Yosemite. We failed to do a first install test against Yosemite, so we missed the problem.
I developed a fix and would love to have some new users try it out. It's petty complex, difficult and disruptive to have current users delete the entire "container" directory and kill the preferences process in order to simulate a fresh install.
I also don't like the idea of distributing an unlocked version of our app. If that gets out, it could damage sales of the app store app.
I've done things like added an expiration date to a test app (weak protection) or created developer ID builds that will only run on machines from a specific list of MAC addresses. The last approach works, but it's tedious and painful to maintain, and requires that the tester give up uniquely identifiable information about their machines.
I'd really like the ability to create apps that will only run on beta tester's machines, like TestFlight does for iOS.
This is a developer question more than a code question. It isn't a great fit for SO, but I can't think of a better Stack Exchange site to post it. If anybody has a suggestion of a better site to post the question I'm happy to move it there.
This document at Apple Developer explains it.
It says you should register the testers' devices and generate a provisioning profile that includes them. Which means, theoretically, the app won't run on any device not in the list.
Here is the strange thing about it however: I have two Mac computers and I didn't register either of them with my provisioning profile (in fact the list of registered devices is empty right now), but I can run the exported app image on both easily. The app is sandboxed and signed, ready for App Store distribution, but nevertheless it runs on unregistered computers. It might be that with an empty device list it allows to run on any, or it might be that I'm doing something wrong with code signing.
I will update the answer once I figure this out.
Good news for everyone (including me) waiting for TestFlight for Mac - it just got announced on WWDC21.
Unfortunately, it might take another few months until it is out of beta and publicly available for everyone. But since this question is almost more than 6 years old, its just a fraction!
I"ll update the answer if there are more details available
Update
TestFlight on Mac will be available to download on the Mac App Store. It will be similar to the iOS version of TestFlight offering almost the same functionality to both developers and testers.
It supports both native Mac apps and iOS apps on Apple Silicon!
It is now available.
TestFlight is not available for Mac apps.
source: https://testflight.apple.com/
😕

Check if Mac App was taken from Mac App Store with Cocoa

I'm trying to give a license to all the users who have bought my app from Mac App Store in order to give them faster updates.
What i was thinking is to do an update for the Mac App Store version of the app that will let user register from within the application itself. But i'm having problems figuring out how to test if the application was really taken from Mac App Store and not from a pirated source.
Is there a way to test if the user bought the app from AppStore. Apple does not release this info - as if it would - i could just test if that user email is in the list of people who downloaded the app from AppStore.
Thank you in advance for the help,
Bogdan Vladu
You could have the MAS version of your application copy the Apple-issued receipt to the Application Support folder.
The independent version could look there for a valid receipt. If there is, it will behave like the fully licensed version. If there is not, it would go to demo mode.
If you're making enough money from this app to pay money for DRM and obsfucation, go for it. It might slow down the pirates enough for it to be a profit for you.
Otherwise, you're pitting your own time and skill against everyone who's interested in pirating your app. It's a losing battle, unless your app is really unpopular, in which case you've lost again.
In short, there's no algorithmic way of making sure. Code obsfucation is the way to go, and hope that the pirates don't find the "check-for-tampering" module.

Resources