问题
As many sources state on the internet, you need to have your app Sandboxed to be able to deploy it in the App Store.
Furthermore, it is impossible to use the accessibility api (AXUIElement.h) when sandboxed,according to this.
However, some apps still seem to use this api. One of these apps is Cinch. In the installation procedure of Cinch you need to give Cinch rights to use the accessibility API, so clearly they are using this API.
After checking out the binary from the app store with the following command:
codesign --display --entitlements - /Applications/Cinch.app
It seems the app is not sandboxed:
Executable=/Applications/Cinch.app/Contents/MacOS/Cinch
(only line in output).
So my question is, how is it possible to circumvent this requirement. Do you need to negotiate with Apple to achieve this? Are there special rules? Do you need to bribe a staff member? Or is my terminal command wrong?
回答1:
Irradiated submitted Cinch to the App Store in 2011 before sandboxing was needed and didn't do any substantial updates since then. As soon as they add new functionality or features, they'll need to sandbox the app.
Apple wrote to the developers in February 2012:
Starting June 1 2012, if you have an existing app on the Mac App Store that is not sandboxed, you may still submit bug fix updates without sandboxing your app. In addition, if you have technical issues that prevent you from sandboxing your app by June 1, let us know.
and in May 2012:
If you have an existing app on the Mac App Store that is not sandboxed, you may still submit bug fix updates after June 1.
回答2:
It is quite surprising for an app from the App Store to not be sandboxed.
If you do not develop a competing app maybe you could contact them directly. Maybe they will tell you how they've done it. You might also get your answer in a shorter amount of time as (at least in my view) not many developers would have done this.
http://www.irradiatedsoftware.com/about/
来源:https://stackoverflow.com/questions/22751171/mac-app-store-circumvent-sandbox-requirement