Hi,
I have a macOS app (for macOS Monterey 12.3 and higher) that I would like to offer via the App Store. The app has a plug-in architecture, the plug-ins consist of bundle files (NSBundle)
. One single plug-in is included in the app as it is in the App Store and can be downloaded from there.
In principle, the app should be expandable by the user after download. Additional bundles can be downloaded from elsewhere or developed by other developers.
My questions are:
1.) Does this contradict any regulations of the macOS App Store?
2.) The bundle file that comes with the app is located in Contents/Plugins:
Does it make sense to allow the user to copy other bundles there as well?
Many thanks!
Does this contradict any regulations of the macOS App Store?
I don’t usually comment on App Review issues — I don’t work for App Review and only they can give you definitive answers to such questions — but in this case the App Store Review Guidelines are crystal clear:
Apps distributed via the Mac App Store may host plug-ins or extensions that are enabled with mechanisms other than the App Store.
Does it make sense to allow the user to copy other bundles there as well?
Oh gosh no! Your app is sealed by your code signature. If the user starts adding stuff to it, that’ll break the seal, resulting in all sorts of weird problems.
The traditional way for Mac apps to deal with this is to load plug-ins from a subdirectory within NSApplicationSupportDirectory
, searching both the user domain (NSUserDomainMask
, that is, ~/Application Support/DDD
) and the local domain (NSLocalDomainMask
, that is, /Library/Application Support/DDD
).
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"