Can I submit a Mac App without enabling Sandboxing? - macos

As I heard that Mac Apps submitted must enable sandboxing. Because I want to use NSRunningApplication.terminate, and it doesn't work with sandboxing.

Only sandboxed Apps are allowed, I'm sorry
UPDATE
Now Apple has extended the deadline for non sandboxed apps on the MAS until June. Apps that are not sandboxed can be updated even after that date... I think that is great news

To clarify, you can submit a non-sandboxed app until March 1, 2012. After that date, Apple will only accept sandboxed apps.
I'm not sure if they will remove non-sandboxed apps from the store once they are already in though. They'll either remove them or prevent you from updating until you use entitlements.

Related

Revoke / invalidate Mac app signed with Developer ID

I used to distribute a Mac app signed with Developer ID internally. Now I sell this app through the Mac App Store. Is there any way to invalidate the old Developer ID signature, or prevent the old app from running? I'd like to stop the old version from being used, or at least stop it from being redistributed.
If your internal app has no way to update itself them you really can't do much.
What you can do is revoke your certificate and release a new version of your app on the Mac App Store. This still won't prevent the already installed app from running. Just that newer installs can be prohibited.
In your Mac app store version of the app make sure you have some upgrade logic. I.e., if the user has the older app and the newer one then the newer one should delete the older app.
I hope it helps.

Bypass Gatekeeper in Mac OS X Apps without a Mac Developer Membership

Scenario
I want to release an app for Mac OS X, but not on the AppStore. The app runs on 10.6 - 10.8 and up.
Problem
Apple requires all apps for Mac OS X 10.8+ to be signed by the developer to get past Gatekeeper. And unless I tell each user to temporarily disable and re-enable gatekeeper just for my app, according to this document and the Mountain Lion change log... my app won't be allowed to run.
From the wording on Apple's website, it sounds like I'll have to pay the $99.00 a year for the certificate. However, I do not want to pay the $99 - I'm not publishing to the AppStore!
Question
Is there any way I can get around paying the $99 for distribution on 10.8+? I know my app will work on 10.6 and 10.7, but according to Apple it won't be allowed to run on 10.8 without the certificate. Is that true? How can I distribute on 10.8+ (preferably a DMG) without a $99 distribution certificate? Thanks in advance!
Edit #1
DMG files are not authenticated by Gatekepper, only the app itself is.
OS X Lion 10.7.5+ also has Gatekeeper * angry face *
Apple currently provides no way to get around Gatekeeper without paying the $99 / year membership fee. To me, this seems unfair because it squishes out the smaller developers (but that's a discussion for elsewhere).
For a rather cumbersome workaround, one can include a ReadMe or note on the download page for their software to explain to users that they need to right click your app and then click 'Open' and then click confirm to run it. I have also found through experimenting that Gatekeeper does not run security checks on DMG files or the installation of files, only the execution / running of Apps. So one could include some kind of note in their DMG installer that told the user exactly how to install and run the app.
Hopefully Apple will provide a workaround for developers (possibly a cheaper solution for a limited membership) that distribute freeware and open source software.
You don't need to purchase membership. Just get a code signing certificate from any agency and sign your app with it. Then it will bypass the Gatekeeper check. Gatekeeper only checks whether the app is from identified developer or not.

Unlocking Developer ID version of app if Mac App Store version is present on system

I'm currently working on sandboxing some of my applications and it looks like I'll have to get rid of a few features just to satisfy the Mac App Store sandboxing (and other) rules.
Obviously users won't be happy about losing features and I fear they won't blame Apple for making stupid rules and we developers will have to bear the brunt of the anger.
In this vein, I'm thinking about building a system that means that if a user buys the Mac App Store version, s/he'll get the "normal" distribution version for free.
Since I have no idea what the email of the people buying my apps on the Mac App Store is and I don't want to have to handle such cases "by hand", I'd like to find a way of doing so automatically.
I've been thinking about just looking on the hard disk, finding an installed version of the program from the Mac App Store and then unlock the "distribution" version as well.
I'm just not certain whether this doesn't break Mac App Store rules..
is looking for the MAS receipt okay in terms of the MAS rules?
can I verify the MAS receipt using the same mechanism as is embedded in the MAS version of my program?
Is anybody else thinking along these lines?
Best regards,
Frank
I do something like this to enable Mac App Store customers to easily beta test new versions of my app downloaded from my website while still enforcing licensing. Upon startup of the MAS version of my app, I copy its receipt into /Library/Application Support/MyAppName/. Beta versions of the non-MAS version of my app include the same receipt validation code as the MAS version. They look for a receipt in the App Support folder, and validate it, running in licensed-mode if the receipt is valid.
I've been doing this since shortly after the launch of the Mac App Store, as have other developers with no problem. What you describe should be just fine.

Is configuring entitlements for Mac App Store application a must?

I am going to submit my application for Mac App Store, and I am confused about enabling entitlements.
In Apple developer guide for configuring your app for mac App store, it does not say if it is required, or its just better to do it.
I am not using iCloud or push notifications (and are not enabled in my App ID).
I am not going to enable Sandboxing before 1st of March.
I sign my executable with the appropriate Apple Application Certificate and my installer with Installer certificate.
I am following the File-System Usage Requirements for the Mac App Store guide lines.
Last time my binary was accepted, but application was rejected in review due to some other violation.
My question is, will my app get rejected if I do not check the Enable Entitlements checkbox in Xcode. If I enable it, the second option is if I want to enable Sandbox which I do not, so it seems irrelevant.
I found this answer which says its not required but its for iOS.
Can someone confirm?
Thanks in Advance.
No it is not needed. My App was approved without Enabling entitlements. But, it will be needed once I start using Push notifications, Sandboxing, or iClouds.

Updating on Mac OS X App Store

I am writing my first application. I was using Sparkle framework for updating but recently someone told me that this is not accepted by Apple on Mac App Store. So how else can I update my application? thanks.
You send updates to the app store. After being approved, they’ll be available and App Store.app will tell your users that there’s an update for your application.

Resources