1

In an app for the Mac App Store, I need on the system LibreOffice only for one specific feature. The rest of the app works without it. Does this break the rules of the Store? I know that the submission process is unpredictable, but perhaps there are developers that have encountered this precise issue. Thanks a lot.

Farhana Naaz Ansari
  • 7,524
  • 26
  • 65
  • 105
Alfonso Tesauro
  • 1,730
  • 13
  • 21

1 Answers1

-1

The most important rule for Mac AppStore is that your application must be sandboxed (https://developer.apple.com/app-store/review/guidelines/#hardware-compatibility section 2.4.5 part (i)). A sandboxed application can access only it's own files, cannot read anything outside of it's "bubble". This means it can use LibreOffice only in case if it's part of the application bundle.

In short: your app must contain LibreOffice. I'm not familiar with LibreOffice's licensing so I'm not sure if it's possible to include in any application. Maybe if you need only a tool from it, you could add that to your application bundle and that would be accepted.

Another solution should be to ask user to grant access to LibreOffice's directory when needed - but that's not really user friendly as your application would need to ask that each time it's executed. A sandboxed application can gain access to directories outside of it's sandbox on user consent. This means when it opens a OpenFile dialog and user selects and clicks "Open" on LibreOffice directory, your app will gain access on that - temporarily, until it runs.

One last solution: to use temporary exceptions (https://developer.apple.com/library/archive/documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/AppSandboxTemporaryExceptionEntitlements.html#//apple_ref/doc/uid/TP40011195-CH5-SW7) for giving access to a predefined LibreOffice path but these entitlements are temporary for a good reason. You'll need to explain why you need an exception and there's no guarantee that Apple will accept that.

Gergely
  • 3,025
  • 2
  • 14
  • 13
  • I am aware of sandboxing, but the decision of the user to allow access to LibreOffice will not need to be repeated because in the sandbox, you can save security scope bookmarks for later use, for example as NSData in NSUserDefaults. You can read about it in many places like https://stackoverflow.com/questions/18711049/creating-a-security-scope-bookmark-for-a-file-from-one-of-a-directory-containing – Alfonso Tesauro Jan 05 '19 at 23:54
  • Why the downvote? Your question doesn’t contain information what you’re aware of. – Gergely Jan 06 '19 at 09:05